我有一个SimpleCursorAdapter,它从SQLite数据库填充数据。它工作正常,但“持续时间”列以毫秒为单位,我想在显示之前将其除以(持续时间/ 1000)。如果没有在DB中存储另一个持续时间(以分钟为单位)列,这可能吗?
适配器:
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);
selectAllRecords:
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;
}
答案 0 :(得分:0)
你有几个选择:
一个是创建自定义SimpleCursorAdapter并覆盖setViewText()。在您的实现中检查是否传递了相关的textview并将视图值设置为您想要的值。你必须将String转换为int(或浮点数,你需要的)来应用你的精度。
另一个是实现SimpleCursorAdapter.ViewBinder,在适配器的setViewBinder中将其设置为绑定器,并在绑定器的setViewValue中执行您的操作