मैं ListView
में Cursor
से जानकारी प्रदर्शित करने की कोशिश कर रहा हूं, प्रत्येक पंक्ति में ImageView
और TextView
है। मेरे पास CursorAdapter
विस्तार CursorAdapter
है, bindView
में मैं कर्सर से डेटा का मूल्यांकन करता हूं और उस पर आधारित दृश्य छवि और टेक्स्ट सेट करता हूं।CursorAdapter bindView को ओवरराइड कैसे करें
जब मैं ऐप चलाता हूं तो ListView
पंक्तियों की सही मात्रा प्रदर्शित करता है, लेकिन वे खाली होते हैं। मुझे पता है कि बाइंडव्यू ओवरराइड करते समय मुझे कुछ याद आया है, लेकिन मुझे यकीन नहीं है कि क्या।
किसी भी मदद की सराहना की जाएगी।
private class CustomCursorAdapter extends CursorAdapter {
public CustomCursorAdapter() {
super(Lmw.this, monitorsCursor);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater layoutInflater = getLayoutInflater();
return layoutInflater.inflate(R.layout.row, null);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
try {
int monitorNameIndex = cursor.getColumnIndexOrThrow(DbAdapter.MONITORS_COLUMN_MONITOR_NAME);
int resultTotalResponseTimeIndex = cursor.getColumnIndexOrThrow(DbAdapter.RESULTS_COLUMN_TOTAL_RESPONSE_TIME);
String monitorName = cursor.getString(monitorNameIndex);
int warningThreshold = cursor.getInt(resultTotalResponseTimeIndex);
String lbl = monitorName + "\n" + Integer.toString(warningThreshold) + " ms";
TextView label = (TextView) view.findViewById(R.id.label);
label.setText(lbl);
ImageView icon = (ImageView)view.findViewById(R.id.icon);
if(warningThreshold < 1000) {
icon.setImageResource(R.drawable.ok);
} else {
icon.setImageResource(R.drawable.alarm);
}
} catch (IllegalArgumentException e) {
// TODO: handle exception
}
}
}
मैं इसे बाद में आजमाउंगा, लेकिन 1 टिप्पणी: आपको इन कर्सर.getColumnIndexOrThrow (DbAdapter.MONITORS_COLUMN_MONITOR_NAME) करना चाहिए; 'आपके कन्स्ट्रक्टर में कॉल करें। आप के बारे में 'log.e' अपवाद कैसे? –