我试图创建一个列表适配器,它可以引入并显示数据库中的数据。从我所知道的情况来看,它正在拉动信息,但是当我尝试从新的Simple游标适配器创建ListAdapter时失败。不知道我在这里做错了什么。将SQLite数据放入ListActivity
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,这样当有人点击的状态,但是,这样是不可见的,我可以访问它。
我还没有在Eclipse中进行大量的调试,但仍处于学习阶段。 在logcat的我发现 06-22 21:02:22.519:ERROR/AndroidRuntime(229):未捕获的处理程序:线程退出主要由于未捕获的异常 06-22 21:02:22.750:ERROR/AndroidRuntime(229 ):java.lang.RuntimeException:无法启动活动ComponentInfo {com.jl.og/com.jl.og.Informational}:java.lang.IllegalArgumentException:列'_id'不存在 – AndyD273 2010-06-22 21:18:24
因此,我将StateID重命名为_id,似乎这样做。 这真的令人沮丧。它不是_ID,它必须是_id。 我也有8个表,我将它们连接在一起,并且在所有表上使用_id作为主键是有点烦人的,因为它们现在不匹配外键,这使得事情变得愚蠢。 另外我在几个应用程序中使用这个数据库,这意味着我必须重写它们以使用新的结构,或者我必须在每次更新时重命名ID列......有什么办法可以解决这个问题? – AndyD273 2010-06-22 21:18:55
是否可以将'Select StateID as _id'? – AndyD273 2010-06-22 21:20:18