Ich versuche, Informationen von einem Cursor
in einem ListView
anzuzeigen, jede Zeile enthält einen ImageView
und einen TextView
. Ich habe eine CustomCursorAdapter
Erweiterung CursorAdapter
, in bindView
Ich werte die Daten aus dem Cursor und basierend darauf die Ansichten Bild und Text.Wie überschreiben CursorAdapter bindView
Wenn ich die App ausführen zeigt die ListView
die richtige Anzahl von Zeilen, aber sie sind leer. Ich weiß, dass ich beim Überschreiben von BindView etwas übersehen habe, aber ich bin mir nicht sicher, was.
Jede Hilfe würde sehr geschätzt werden.
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
}
}
}
Ich werde das später versuchen, aber 1 Kommentar: Sie sollten diese 'cursor.getColumnIndexOrThrow (DbAdapter.MONITORS_COLUMN_MONITOR_NAME);' Aufrufe in Ihrem Konstruktor. Wie wäre es mit dir 'Log.e' die Ausnahme? –