Android 为什么我的编辑联系人无法工作?

Android 为什么我的编辑联系人无法工作?,android,android-intent,Android,Android Intent,我正在显示联系人列表,并且有一个上下文菜单,可以通过调用意图来编辑联系人。在某些联系人上,它可以正常工作,但在其他联系人上,“编辑联系人”活动为空。有什么想法吗 这是光标 projection = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.

我正在显示联系人列表,并且有一个上下文菜单,可以通过调用意图来编辑联系人。在某些联系人上,它可以正常工作,但在其他联系人上,“编辑联系人”活动为空。有什么想法吗

这是光标

 projection = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone._ID};   
 uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
 cursor = getActivity().getContentResolver().query(uri, projection, null, null,    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
这是我的CursorAdapter.getView中的代码

textView.setText(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)) ;
这是我的onContextItemSelected中的代码

cursor.moveToPosition(position);
String idContact = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Intent i = new Intent(Intent.ACTION_EDIT);
i.setData(Uri.parse(ContactsContract.Contacts.CONTENT_LOOKUP_URI + "/" + idContact));
parent.startActivity(i);
我查过logcat,可以看到

I/ActivityManager(  102): Starting activity: Intent { act=android.intent.action.EDIT dat=content://com.android.contacts/contacts/lookup/23356 cmp=com.android.htccontacts/.ui.EditContactActivity }
但是没有错误消息

请尝试以下操作:

Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
Cursor cursor = this.getContentResolver().query(uri, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
long idContact = cursor.getLong(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
然后

试试这个:

Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
Cursor cursor = this.getContentResolver().query(uri, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
long idContact = cursor.getLong(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
然后


你注意到隐形眼镜上有什么图案没有出现?你试过调试它吗?我看不出来:-在模拟器上我只添加了3个联系人,2个工作,一个不工作。在真正的设备上,我什么也得不到。我找不到任何要调试的东西。代码正在正确执行,没有静默异常。我可以看出意图被激发了。在那之后,剩下的就由安卓来做了。我猜是内容查找URI有问题,或者是我导出联系人ID的方式有问题。你注意到联系人没有显示的模式吗?你试过调试它吗?我看不出来:-在模拟器上我只添加了3个联系人,2个工作,一个不工作。在真正的设备上,我什么也得不到。我找不到任何要调试的东西。代码正在正确执行,没有静默异常。我可以看出意图被激发了。在那之后,剩下的就由安卓来做了。我猜是内容查找URI有问题,或者是我获取联系人ID的方式有问题。看起来效果很好。我会再做一些测试,然后接受答案。非常感谢。很高兴我帮了忙。主要问题是_ID而不是CONTACT ID。Contacts数据存储在多个表中,而_ID是其中一个表中的ID。似乎工作得很好。我会再做一些测试,然后接受答案。非常感谢。很高兴我帮了忙。主要问题是_ID而不是联系人ID。联系人数据存储在多个表中,而_ID是其中一个表中的ID。