当我尝试从电话的联系人列表中获取电话号码时。问题是,当我在手机中的联系人列表为空时运行该应用程序时,该应用程序已停止。我查了一下,这是因为光标是空的。
如何查看光标是否为空或手机的联系人列表中是否有联系人?
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();
最佳答案
测试“有效”游标的一般模式是
((cursor != null) && (cursor.getCount() > 0))
Contacts Provider 不会返回 null,但其他内容提供者可能会在遇到某种数据错误时这样做。内容提供者应该处理异常,将光标设置为零,并记录异常,但不能保证。
关于android - 如何检查游标是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010761/