联系人查询和空字符串的问题

时间:2011-06-21 03:23:03

标签: android

编辑:解决了这个问题:(在花费时间之后,这是最简单的解决方案。正确的代码如下。

确定。所以我有查询工作,我可以通过他们的电话号码查找某人。我想要做的是如果我查找的电话号码不存在,它只返回电话号码。这是我到目前为止所做的:

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上返回任何内容。那我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果c.moveToNext()第一次返回false,则无法将空conname设置回电话号码。您可以使用c.moveToFirst()来测试光标是否为空,并在这种情况下将电话号码指定给conname