将SQLite数据放入ListActivity

时间:2010-06-22 20:20:48

标签: android database

我正在尝试创建一个列表适配器,它可以引入并显示数据库中的数据。据我所知,它正在提取信息,但是当我尝试从新的Simple游标适配器创建ListAdapter时它失败了。不知道我在这里做错了什么。

SQLiteDatabase db = myDbHelper.getReadableDatabase();
String select = "Select StateID, State, Details from States";            
Cursor cursor = db.rawQuery(select, null);

startManagingCursor(cursor);
ListAdapter adapter = new SimpleCursorAdapter(this,
    android.R.layout.simple_list_item_1,
    cursor,
    new String[]{"State"},
    new int[]{android.R.id.text1});

setListAdapter(adapter);

第二部分将弄清楚如何将StateID指定为列表中的行ID,以便当有人点击状态时我可以访问它,但是它不可见。

2 个答案:

答案 0 :(得分:4)

如果您在Eclipse中使用adb logcat,DDMS或DDMS透视图来查看与崩溃关联的堆栈跟踪,这确实很有帮助。否则,当你说它“失败”时,我们不知道它意味着什么。

但是,我只能从代码检查中看到一个主要缺陷:您需要一个名为_ID的列才能使用SimpleCursorAdapter_ID必须是唯一的,并且需要Java long(SQLite中的INTEGER)。

理想情况下,您将StateID替换为_ID。在这种情况下,您的“第二部分”将被解决,因为行的ID是您的_ID值。例如,当您点击列表项时获得long id参数时,这就是_ID值。

答案 1 :(得分:0)

对我来说一切似乎都很好。

如果您需要获取行ID,则查询结果中必须有一个_ID列,该列将被识别为行ID。