Android 如何在地址簿中查找联系人

Android 如何在地址簿中查找联系人,android,android-intent,android-contacts,android-activity,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.AC

我正在尝试在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
是要搜索的人的值。当我点击搜索时,似乎什么也没有发生。我做错了什么?请告知

谢谢。

尝试使用:

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

只需检查cur.getCount()>0以了解您是否正在获取相关数据。希望您的联系人簿中有名为mKey的联系人,否则您将始终获得空光标:P

尝试此代码,用显示名称替换A1

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

startActivityForResult
之后不应有任何代码。您需要覆盖ActivityResult上的
。要么是谷歌(或者等待别人在回答中编写代码)谢谢Hiral,我仍然在想我的活动实施情况。i、 e Intent n=新意图(Intent.ACTION\u PICK,Contacts contract.Contacts.CONTENT\u URI);((活动)this.context)startActivityForResult(n,PICK_请求);你觉得怎么样?对不起。。我还没做过。我帮不了你!!:(嘿,Rajdeep,谢谢,但是我的光标getcount返回0,即使姓名实际上在联系人通讯簿中。有什么想法吗?显示名称是名字+姓氏Thaks Rajdeep但是,在测试Hiral的代码后,它似乎可以工作,非常感谢!!