【发布时间】:2014-08-27 10:59:36
【问题描述】:
我正在尝试从联系人列表中获取联系人,但由于某种原因我无法获取。我遵循了一些指南。这是我的代码:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_ice_add:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, RequestCodes.PICK_CONTACT);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
当我调试时,它总是进入默认情况,它返回 super.onOptionItemSelected(item);
@SuppressLint("InlinedApi")
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// se comprueba de qué activity está volviendo
switch(requestCode) {
case (RequestCodes.PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
ContactUtils.addContactInfo(getActivity(), contactData, adapter);
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
它永远不会在ActivityResult 上启动。
谁能给我一个提示?我会很感激的。谢谢。
编辑 1
我必须说这段代码适用于 Android 2.3,但它不适用于 KitKat(这些是我拥有的设备)
编辑 2
我在清单中添加了 android.permission.READ_CONTACTS
编辑 3(已解决)
问题不在于意图。我正在使用 Fragments 并且正在调用 onActivityResult,但我不知道 我必须对附加 Fragment 的 Activity 执行“super.onActivityResult(arg0,arg1,arg2)”。。 p>
我不会删除这个问题,因为这可能会有所帮助。
谢谢大家。
【问题讨论】:
-
您是否在清单中添加了权限 android.permission.READ_CONTACTS?
-
是的,我已经添加了相应的权限
-
如果它总是出现默认情况,那么在膨胀菜单或选择正确的 id 时可能会出现问题。检查一次
标签: android android-intent android-contacts