首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查游标是否为空?

如何检查游标是否为空?
EN

Stack Overflow用户
提问于 2013-02-22 03:37:43
回答 5查看 48.1K关注 0票数 25

当我试图从电话的联系人列表中获取电话号码时。问题是,当我在手机中的联系人列表为空的情况下运行应用程序时,应用程序会停止。我检查了一下,这是因为光标是空的。

如何检查光标是否为空,或者电话的联系人列表中是否有联系人?

代码语言:javascript
复制
ArrayList<String> lstPhoneNumber = new ArrayList<String>();
Cursor phones = getContentResolver().query(
        ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); 
lstPhoneNumber = new ArrayList<String>();

phones.moveToFirst();
// The problematic Line:
lstPhoneNumber.add(phones.getString(phones.getColumnIndex(
        ContactsContract.CommonDataKinds.Phone.NUMBER))); 
while (phones.moveToNext()) {
    lstPhoneNumber.add(phones.getString(phones.getColumnIndex(
            ContactsContract.CommonDataKinds.Phone.NUMBER))); 
}
phones.close();
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-22 03:50:43

我添加了一个投影,所以你只能得到你需要的列。

代码语言:javascript
复制
String[] projection = new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER };
ArrayList<String> lstPhoneNumber = new ArrayList<String>();
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
        projection, null, null, null);
if (phones == null)
    return; // can't do anything with a null cursor.
try {
    while (phones.moveToNext()) {
        lstPhoneNumber.add(phones.getString(0));
    }
} finally {
    phones.close();
}
票数 9
EN

Stack Overflow用户

发布于 2013-02-22 03:40:35

使用cursor.getCount() == 0。如果为true,则游标为空

票数 25
EN

Stack Overflow用户

发布于 2013-02-22 03:40:45

试试这个吧。代码的问题在于,无论游标的长度如何,它都会执行add。我将phones.moveToFirst()包含在if语句中,因为如果游标为空或没有设置记录,它将返回false。

代码语言:javascript
复制
  if(phones.moveToFirst()){
       do{
          lstPhoneNumber.add(phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); 
        }while(phones.moveToNext())
   } else {
        //do something else
   }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15010761

复制
相关文章

相似问题

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