Estoy trabajando en una aplicación de TV Guide que usa un ListActivity
que muestra los programas de TV para un canal/un día a la vez. Estoy usando un RelativeLayout
de los artículos ListView
y quiero la ListView
a ser algo como esto:Modificación de los datos de SimpleCursorAdapter
07:00 The Breakfast Show
Latest news and topical reports
08:00 Tom and Jerry
More cat and mouse capers
consigo los datos de los artículos ListView
utilizando 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 es un start_time
datetime
con el siguiente formato:
2011-01-23 07:00:00
así que lo que se ve es la siguiente:
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 el anterior utilizando SimpleDateFormat
("HH:mm"
) por lo que sólo consiguió el papel hour:minute
del campo start_time
.
He encontrado la interfaz SimpleCursor.ViewBinder
que sugiere que puede ser lo que quiero pero no puedo encontrar la manera de usarlo. Si estoy en lo cierto acerca de ViewBinder
, agradecería algunos consejos para muestrear el código sobre cómo usarlo. De lo contrario, ¿cómo puedo lograr cambiar el campo start_time
para simplemente mostrar el formato HH:mm
?
Gracias, que lo explica muy bien. He vuelto a trabajar tu ejemplo para que se ajuste a mi código y funciona perfectamente para mí. – Squonk
Esto acaba de salvar mi trasero tratando de reordenar los recuentos de filas de un Cursor, así que gracias señor. Mi código es el siguiente: HistoryAdapter.setViewBinder (nueva SimpleCursorAdapter.ViewBinder() { \t \t \t @ Override \t \t \t setViewValue public boolean (Ver punto de vista, el cursor Cursor, int columna) { \t \t \t \t si (columna == 0) {// Supongamos que la columna 0 es la \t \t \t \t \t \t \t \t \t // fecha \t \t \t \t \t TextView tv = (Vista de texto); \t \t \t \t \t Cadena rownum = String.valueOf (cursor.getPosition() + 1); \t \t \t \t \t // aquí se utiliza SimpleDateFormat a bla bla bla \t \t \t \t \t televisión.setText (rownum); \t \t \t \t \t return true; \t \t \t \t} \t \t \t \t return false; \t \t \t} \t \t}); –
@Cristian Por favor, ¿cree que podría ayudar con este http://stackoverflow.com/questions/27257416/android-how-can-i-pass-data-related-to-two-tables-to-a-the -insert-method-of-a? – eddy