如何在地址簿Android中找到人

时间:2011-11-30 08:40:01

标签: android android-intent android-contacts android-activity

我正在尝试在Android的地址簿中实现人物查询。这就是我实现它的方式:

Cursor cur = this.context.getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, null, Data.DISPLAY_NAME + "=?", new String[] { mKey }, null);
if (cur.moveToFirst()) {
  Intent n = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);  
  ((Activity) this.context).startActivityForResult(n, PICK_REQUEST);
if (PICK_REQUEST != 0) {
  if (Activity.RESULT_OK != 0) {
    ((Activity) this.context).startActivity(n);
        }
    }
 } else {
    Toast.makeText(this.context, "The contact does not exist", Toast.LENGTH_LONG).show();
    //  }

其中mKey是要搜索的人的值。点击搜索时似乎没有任何事情发生。做错了什么?请指教。

感谢。

2 个答案:

答案 0 :(得分:0)

尝试使用:

Cursor cur = this.context.getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, null, Data.DISPLAY_NAME + " like '"+mKey+"%'", null, null);

只需检查cur.getCount()> 0即可知道您是否正在获取相关数据。希望您在联系人名单中使用名称mKey联系,否则您将始终获得空游标。 :P

答案 1 :(得分:0)

尝试此代码,将A1替换为您的显示名称

Cursor cursor1 = activity.getContentResolver().query(
                Contacts.CONTENT_URI,
                new String[] {Contacts._ID, Contacts.DISPLAY_NAME}, 
                Contacts.DISPLAY_NAME  + "=?",
                new String[] {"A1"}, 
                null);