0

我正在使用 SimpleCursorAdaptor 和 ListView 来显示我的 SQLite 数据库行中的值。我的行中的值之一是日期(列“日期”)。而不是显示这个日期,我需要通过一个方法来运行它,该方法将根据日期返回另一个字符串。这是我希望在列表中显示的值,而不是直接从数据库中获取的实际值。

简而言之,我希望显示我的数据库表行中的所有值,除了一个,我需要在显示之前更改它。

这是我的代码:

public class BinCollectionDayListActivity extends ListActivity{
    //
    private static final String fields[] = { "name", "date", BaseColumns._ID };
    //
    public void onCreate(Bundle savedInstanceState) {
        //
        super.onCreate(savedInstanceState);
        //
        DatabaseHelper helper = new DatabaseHelper(this);
        SQLiteDatabase database = helper.getWritableDatabase();
        Cursor data = database.query("names", fields, null, null, null, null, null);
        CursorAdapter dataSource = new SimpleCursorAdapter(this, R.layout.binrow, data, fields, new int[] { R.id.name, R.id.date });
        dataSource.getCursor().requery();
        //
        ListView view = getListView();
        view.setHeaderDividersEnabled(true);
        setListAdapter(dataSource);
        //
        helper.close();
        database.close();
    }
}

正如您所说,我对 Android 开发还很陌生,并且很想知道实现预期结果的最佳方法是什么。

提前致谢,

托尼

4

1 回答 1

0

我以前使用过的两个选项:

数组适配器(首选):创建一个 ArrayAdapter 并将光标数据填充到您的 ArrayAdapter 中。 http://anujarosha.wordpress.com/2011/11/17/how-to-create-a-listview-using-arrayadapter-in-android/

ViewBinder:在光标上,您可以设置/指定一个 ViewBinder,您可以在其中检查即将映射的数据,对其执行一些逻辑,并在需要时输出不同的结果。这可能正是您正在寻找的东西,但请考虑使用 ArrayAdapter,因为它往往会为您提供更好的控制,并且稍后切换这些东西会很痛苦。 使用 SimpleCursorAdapter 从 Cursor 更改值

于 2012-04-24T13:51:55.037 回答