android android-listview simplecursoradapter android-viewbinder

android - Modificando los datos de SimpleCursorAdapter



android-listview android-viewbinder (1)

Puedes hacer algo como esto:

adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() { @Override public boolean setViewValue(View view, Cursor cursor, int column) { if( column == 0 ){ // let''s suppose that the column 0 is the date TextView tv = (TextView) view; String dateStr = cursor.getString(cursor.getColumnIndex("name_of_the_date_column")); // here you use SimpleDateFormat to bla blah blah tv.setText(theFormatedDate); return true; } return false; } });

Estoy trabajando en una aplicación de la Guía de TV que utiliza un ListActivity muestra los programas de TV para un canal / un día a la vez. Estoy usando un RelativeLayout para los elementos de ListView y quiero que ListView vea algo como esto:

07:00 The Breakfast Show Latest news and topical reports 08:00 Tom and Jerry More cat and mouse capers

Obtengo los datos para los elementos de ListView usando el siguiente código:

Cursor cursor = db.rawQuery(SELECT blah,blah,blah); String[] columnNames = new String[]{"start_time","title", "subtitle"}; int[] resIds = new int[]{R.id.start_time_short, R.id.title, R.id.subtitle}; adapter = new SimpleCursorAdapter(this, R.layout.guide_list_item, cursor, columnNames, resIds);

Mi problema es que el campo start_time es una datetime y datetime con el siguiente formato:

2011-01-23 07:00:00

así que lo que obtengo es esto:

2011-01-23 07:00:00 The Breakfast Show Latest news and topical reports 2011-01-23 08:00:00 Tom and Jerry More cat and mouse capers

Lo que me gustaría hacer es formatear lo anterior usando SimpleDateFormat ( "HH:mm" ), así que solo obtengo la parte de hour:minute del campo start_time .

He encontrado la interfaz SimpleCursor.ViewBinder que sugiere que puede ser lo que quiero pero no puedo averiguar cómo usarlo. Si estoy en lo cierto acerca de ViewBinder , apreciaría algunos consejos para probar el código sobre cómo usarlo. De lo contrario, ¿cómo puedo lograr cambiar el campo start_time para mostrar simplemente el formato HH:mm ?