修改SimpleCursorAdapter的数据

我正在制作一个电视指南应用程序,它使用ListActivity显示一个频道/一天的电视节目。 我使用的是一个用于ListView项目的RelativeLayout ,我希望ListView看起来像这样:

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

我使用以下代码获取ListView项目的数据:

 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); 

我的问题是, start_time字段是以下格式的datetime

 2011-01-23 07:00:00 

所以我得到的是这样的:

 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 

我想要做的就是使用SimpleDateFormat"HH:mm" )来格式化上面的代码,所以我只能得到start_time字段的hour:minute部分。

我发现SimpleCursor.ViewBinder接口,这表明它可能是我想要的,但我不知道如何使用它。 如果我对ViewBinder是正确的,我将不胜感激一些指针来示例如何使用它的代码。 否则,如何才能实现将start_time字段更改为简单显示HH:mm格式?

Solutions Collecting From Web of "修改SimpleCursorAdapter的数据"

你可以做这样的事情:

 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; } });