Android开发获取数据库数据报错“Value must be ≥ 0 but `getColumnIndex` can be -1”

本文介绍了解决Android开发中使用SQLite数据库时遇到的Cursor报错问题。通过使用getColumnIndexOrThrow()方法替代getColumnIndex(),可以有效避免因返回-1而导致的错误,并给出了一种忽略警告的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在Android开发中,获取自带数据库(SQLite) 中的数据时,会使用Cursor.getColumnIndex()循环获取每一列数据,但是直接写上去会给你报错,我们打开Build查看报错,会叫你修改下面的报错代码。

       Value must be ≥ 0 but `getColumnIndex` can be -1”   翻译一下”valuse的值必须大于等于0,但是getColumnIndex又可以是-1“。

       点击这个函数,查看源码。从这里可以看出,它的返回值-1, 自然也就报错了。然后在它的下面看见跟他很相似,也就是 getColumnIndexOrThrow(),根据前面的提示,得出它是从0开始的。

 然后使用这个方法试一试,最终的结果是不会产生报错提示,能够读取数据。

      除此之外,还可以使用‘@SuppressLint("Range")’,@SuppressLint("Range")的含义就是:忽略警告。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值