0

我有一个 SimpleCursorAdapter,它从 SQLite 数据库中填充数据。它工作正常,但是“持续时间”列以毫秒为单位,我想在显示之前对其进行划分(持续时间 / 1000)。如果不在数据库中存储另一个持续时间(以分钟为单位)列,这可能吗?

适配器:

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

1 回答 1

0

你有几个选择:

一种是创建自定义 SimpleCursorAdapter 并覆盖 setViewText()。在您的实现中检查是否传递了相关的文本视图并将视图值设置为您想要的值。您必须从 String 转换为 int (或 float,您需要的)才能应用您的精度。

另一种是实现 SimpleCursorAdapter.ViewBinder,将其设置为适配器的 setViewBinder 中的活页夹,然后在活页夹的 setViewValue 中执行您的操作

于 2013-10-06T20:11:27.570 回答