android中SimpleCursorAdapter _id错误的问题

作为一个android新手,在绑定数据的时候是这样的

 ListView listview=(ListView)this.findViewById(R.id.listView1);
        
        XJDal xj=new XJDal(MainActivity.this); 
        Cursor cur=xj.Query(); 
		ListAdapter ad=new SimpleCursorAdapter(this, 
				android.R.layout.simple_expandable_list_item_2, 
				cur,
				new String[]{"timeflag","type"},
                new int[]{android.R.id.text1,android.R.id.text2} );
 
        	listview.setAdapter(ad);

查询语句

 public Cursor Query()
	 {
		 return db.query("XJ", new String[]{"timeflag","type"}, null, null, null, null, null);
 
	 }

这个时候运行总是报错,其中有一行

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sclock/com.sclock.MainActivity}: java.lang.IllegalArgumentException: column '_id' does not exist


缺少了一列_id。

_id是用来干什么的?

SimpleCursorAdapter只识别_id作为主键

所以我们需要把上面查询的代码修改一下,添加一个_id的值,如果你的数据库中没有的话可以将主键 as _id。

 public Cursor Query()
	 {
		 return db.query("XJ", new String[]{"_","timeflag","type"}, null, null, null, null, null);
		 
	 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值