编辑:解决了这个问题:(在花费时间之后,这是最简单的解决方案。正确的代码如下。
确定。所以我有查询工作,我可以通过他们的电话号码查找某人。我想要做的是如果我查找的电话号码不存在,它只返回电话号码。这是我到目前为止所做的:
Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
Cursor c = context.getContentResolver().query(lookupUri, new String[]{PhoneLookup.DISPLAY_NAME}, null, null, null);
while(c.moveToNext()) {
conname = c.getString(c.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME));
}
if (conname==null || conname.equals("") || conname.equals("null")) {
conname = phoneNumber;
}
if (messages.length > -1) {
smsToast = conname + ":\n'" + messages[0].getMessageBody() + "'";
Toast.makeText(context, smsToast, Toast.LENGTH_LONG).show();
Log.e("Text Thing", conname + " ugh");
Log.e("Text Thing", phoneNumber);
}
我尝试了一切将conname(联系人姓名)转回phoneNumber。它说conname = null如果它没有在toast上返回任何内容。那我错过了什么?
答案 0 :(得分:1)
如果c.moveToNext()
第一次返回false
,则无法将空conname
设置回电话号码。您可以使用c.moveToFirst()
来测试光标是否为空,并在这种情况下将电话号码指定给conname
。