首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ContactsContract.Groups查询崩溃

ContactsContract.Groups查询崩溃
EN

Stack Overflow用户
提问于 2015-01-04 08:47:13
回答 1查看 255关注 0票数 0

在这里,我使用这个代码从android手机中检索所有组。不幸的是,我在一些android手机上撞车了。

Android 5.0.0 Nexus 5(锤头)

错误:

尝试在空对象引用上调用接口方法的int android.database.Cursor.getColumnIndex(java.lang.String)‘

在这一行:

代码语言:javascript
复制
final int IDX_ID = c.getColumnIndex(ContactsContract.Groups._ID);

这是我的代码:

代码语言:javascript
复制
public void loadGroups() {

    if (groupsV.size()==0){

        final String[] GROUP_PROJECTION = new String[] {

        ContactsContract.Groups._ID, ContactsContract.Groups.TITLE,ContactsContract.Groups.SUMMARY_WITH_PHONES,ContactsContract.Groups.ACCOUNT_TYPE};

        Cursor c = getContentResolver().query(ContactsContract.Groups.CONTENT_SUMMARY_URI,GROUP_PROJECTION,ContactsContract.Groups.DELETED+"!='1' AND "+ContactsContract.Groups.GROUP_VISIBLE+"!='0' ",null,null);

        final int IDX_ID = c.getColumnIndex(ContactsContract.Groups._ID);
        final int IDX_TITLE = c.getColumnIndex(ContactsContract.Groups.TITLE);

        while (c.moveToNext()) {        
            c.getString(IDX_ID);
            c.getString(IDX_TITLE);

           int users = c.getInt(c.getColumnIndex(ContactsContract.Groups.SUMMARY_WITH_PHONES));

           String groupType = c.getString(c.getColumnIndex(ContactsContract.Groups.ACCOUNT_TYPE));

        if (users > 0 && groupType.equals("vnd.sec.contact.phone")){

          String group = c.getString(IDX_ID)+","+c.getString(IDX_TITLE)+","+users;

           groupsV.add(group);
        }
    }

   c.close();
 }
}

请问如何解决这个问题?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-04 09:44:16

您在上面的ContactsContract.Groups上进行的查询可能不会在某些手机上返回任何数据。这看起来像是NullPointerException未被正确处理的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27763894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档