ExpandableListView异常Couldn't read row 0, col -1 from CursorWindow

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013597998/article/details/78205279

记录一个比较好玩的bug。
在使用ExpandableListView时,老是在执行完bindGroupView时,报以上错误,并且错误定位不到业务代码。而groupcursor的有数据的。
debug了一会,发现问题所在。
原因是,我的groupCursor,从数据库中query出来时,使用到了distinct,如以下语句:

String sql = "select distinct pinyinHead from " + DB_TABLE + " where " + DB_STUDIO_ID + "=" + ConfigParams.CURRENT_STUDIO_ID + " order by pinyinHead asc";

这样query出来的cursor有个问题,就是他只是包含一个column(以上只包含pinyinHead),而ExpandableListView我猜测应该是需要_id等其他column的,故抛出以上错误。

解决方法,根据业务自己修改sql语句。
我的方法比较恶心,就是通过distinct 语句拿到cursor后存入到另一个表,再从表中query出来,这时候就可以不用distinct了。

猜你喜欢

转载自blog.csdn.net/u013597998/article/details/78205279