今天做项目的时候遇到了这个问题,查询资料后发现android 建议使用_id作为主键的名字,因为某些组件会直接去使用_id这个名字, 不过你也可以自定义名字的。目前所知是在使用listview 的adapter时会遇到问题,解决方法是在查询数据时,加入规则 select 自定义主键名 AS _id, 再传递该cursor给adapter 就好了,或者就是直接把你的主键名字设置为_id也可以,如果已经创建了数据库还算了,要不还要在DDMS中删除以前的数据库。
解决方法一:
String sql = "select id AS _id,content,time from notetab order by time desc";
解决方法二:
"create table notetab(id integer primary key autoincrement,content text not null,time text not null)";