Estoy tratando de mostrar información de Cursor
en un , cada fila contiene un ImageView
y un TextView
. Tengo un CustomCursorAdapter
extendiendo CursorAdapter
, en bindView
evalúo los datos del cursor y en base a eso establecí las vistas de la imagen y el texto.Cómo reemplazar CursorAdapter bindView
Cuando ejecuto la aplicación, el ListView
muestra la cantidad correcta de filas, pero están vacías. Sé que me he perdido algo al anular bindView, pero no estoy seguro de qué.
Cualquier ayuda sería muy apreciada.
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
}
}
}
voy a tratar esto más adelante, pero 1 comentario: Usted debe hacer estos 'cursor.getColumnIndexOrThrow (DbAdapter.MONITORS_COLUMN_MONITOR_NAME);' llamadas en su constructor. ¿Qué hay de 'Log.e' la excepción? –