java.lang.IllegalArgumentException: column '_id' does not exist问题的解决方案

我在使用SimpleCursorAdapter的过程中遇到了问题:

java.lang.IllegalArgumentException: column '_id' does not exist

这个问题的原因很好找,点进CursorAdapter中就能看到,它需要一个叫"_id"的键值。而且是必须。

而我的数据库的主键是_ID,所以配合不上。那么解决的办法也很简单,query的时候加上as _id就行了。比如你的键值是_ID那么就用select _ID as id, xx,xxxx, from xxx where ......

我的问题不止这么简单,因为我还用了CursorAdapter,人家的构造函数就那么一个,也没有办法加as条件。最后我走了一个比较野的路子,就是把projection的第一个String改成"_ID AS _id ",然后问题解决了,不过这个路子是没有办法的时候才使用的,不推荐。如果哪位朋友有更好的方法麻烦告诉我一下。

原文地址:https://www.cnblogs.com/gelandesprung/p/5311793.html