我正在尝试在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
是要搜索的人的值。点击搜索时似乎没有任何事情发生。做错了什么?请指教。
感谢。
答案 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);