android - 为什么我的编辑联系人不起作用?

标签 android android-intent

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

这是光标...

 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));

然后

Intent i = new Intent(Intent.ACTION_EDIT);
Uri contactUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, idContact); 
i.setData(contactUri);

关于android - 为什么我的编辑联系人不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13439336/

相关文章:

android - Handler.postdelayed

android - Android应用程序中的长时间数学计算

java - Android:我的自定义 ImageView 继承有什么问题?

java - 开始新 Activity android后访问 Intent

android - 有 Intent 地启动摄像机

android - base64 不显示在 android 中电子邮件的图像标签中

java - Android 明文

android - 具有透明背景的 PreferenceFragment?

android - 使用 InCallService 替换 Android 6 和 7 上的默认电话应用程序

Android:没有收到额外的 Intent ID