Android SimpleCursorAdapter-在加载到ListView之前修改数据
我有一个SimpleCursorAdapter,它填充来自SQLite数据库的数据。它工作正常,但是“duration”列是以毫秒为单位的,我想在显示之前将其除以(duration/1000)。如果不在DB中存储另一个持续时间(以分钟为单位)列,这是可能的吗 适配器:Android SimpleCursorAdapter-在加载到ListView之前修改数据,android,sqlite,simplecursoradapter,Android,Sqlite,Simplecursoradapter,我有一个SimpleCursorAdapter,它填充来自SQLite数据库的数据。它工作正常,但是“duration”列是以毫秒为单位的,我想在显示之前将其除以(duration/1000)。如果不在DB中存储另一个持续时间(以分钟为单位)列,这是可能的吗 适配器: adapter = new SimpleCursorAdapter(getActivity(), R.layout.rec_list_items, db.selectAllRecords(), new String[] {
adapter = new SimpleCursorAdapter(getActivity(),
R.layout.rec_list_items,
db.selectAllRecords(),
new String[] { "day", "hour", "minute", "duration", "link" },
new int[] { R.id.textView_day, R.id.textView_hour, R.id.textView_minute, R.id.textView_duration, R.id.textView_link },
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
选择所有记录:
public Cursor selectAllRecords() {
String[] cols = new String[] {ID, DAY, HOUR, MINUTE, DURATION, LINK};
Cursor mCursor = database.query(true, TABLE,cols,null
, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
这里有两个选项: 一种是创建自定义SimpleCursorAdapter并覆盖setViewText()。在您的实现中,检查所讨论的textview是否被传递,并将view值设置为您想要的值。您必须将字符串转换为int(或float,您需要的)以应用精度 另一种方法是实现SimpleCursorAdapter.ViewBinder,将其设置为适配器的setViewBinder中的绑定,并在绑定器的setViewValue中执行操作