android – IllegalArgumentException:调用SimpleCursorAdaptor时,列“_id”不存在

android – IllegalArgumentException:调用SimpleCursorAdaptor时,列“_id”不存在,第1张

概述我有一个名为“master”的表,其中包含列id,姓名,姓氏,性别和名称 当我发出一个查询来获得一个Cursor对象为CursorAdapter我得到: IllegalArgumentException: column '_id' does not exist when call to CursorAdaptor 但是我没有名为“_id”的列表. 有人可以告诉我为什么我得到这个错误? 这是堆栈跟踪 我有一个名为“master”的表,其中包含列ID,姓名,姓氏,性别和名称

当我发出一个查询来获得一个Cursor对象为CursorAdapter我得到:

IllegalArgumentException: column '_ID' does not exist when call to CursorAdaptor

但是我没有名为“_ID”的列表.

有人可以告诉我为什么我得到这个错误?

这是堆栈跟踪:

07-13 15:45:40.582: WARN/System.err(295): java.lang.IllegalArgumentException: column '_ID' does not exist07-13 15:45:40.592: WARN/System.err(295):     at androID.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)07-13 15:45:40.592: WARN/System.err(295):     at androID.Widget.CursorAdapter.changeCursor(CursorAdapter.java:257)07-13 15:45:40.602: WARN/System.err(295):     at com.praumtech.names4baby.ui.nameslistadapter.setCursor(nameslistadapter.java:63)07-13 15:45:40.602: WARN/System.err(295):     at com.praumtech.names4baby.ui.BoysnamesListActivity.initnameList(BoysnamesListActivity.java:79)07-13 15:45:40.602: WARN/System.err(295):     at com.praumtech.names4baby.ui.BoysnamesListActivity.onCreate(BoysnamesListActivity.java:49)07-13 15:45:40.602: WARN/System.err(295):     at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)07-13 15:45:40.602: WARN/System.err(295):     at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2364)07-13 15:45:40.612: WARN/System.err(295):     at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)07-13 15:45:40.612: WARN/System.err(295):     at androID.app.ActivityThread.access00(ActivityThread.java:116)07-13 15:45:40.612: WARN/System.err(295):     at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)07-13 15:45:40.612: WARN/System.err(295):     at androID.os.Handler.dispatchMessage(Handler.java:99)07-13 15:45:40.621: WARN/System.err(295):     at androID.os.Looper.loop(Looper.java:123)07-13 15:45:40.621: WARN/System.err(295):     at androID.app.ActivityThread.main(ActivityThread.java:4203)07-13 15:45:40.621: WARN/System.err(295):     at java.lang.reflect.Method.invokeNative(Native Method)07-13 15:45:40.621: WARN/System.err(295):     at java.lang.reflect.Method.invoke(Method.java:521)07-13 15:45:40.621: WARN/System.err(295):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)07-13 15:45:40.621: WARN/System.err(295):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:549)07-13 15:45:40.631: WARN/System.err(295):     at dalvik.system.NativeStart.main(Native Method)
解决方法 这是因为CursorAdapter在它正在使用的表中必须有一个_ID列.

使用AndroID应用程序中的数据库(sqlite),最好在所有表中添加一个名为_ID的列,以便能够使用CursorAdapter.

或者,您可以编写一个SQL语句

select member_ID as _ID from member _table where ....."

以获得可以与CursorAdapter一起使用的Cursor.

这在CursorAdaptor的documentation中指定:

Adapter that exposes data from a Cursor to a ListVIEw Widget. The Cursor must include a column named “_ID” or this class will not work.”

总结

以上是内存溢出为你收集整理的android – IllegalArgumentException:调用SimpleCursorAdaptor时,列“_id”不存在全部内容,希望文章能够帮你解决android – IllegalArgumentException:调用SimpleCursorAdaptor时,列“_id”不存在所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1131242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存