0
나는 두 개의 추가 기능을 사용하여 내 응용 프로그램에서 새 연락처 바로 가기를 만들거나 기존 항목을 편집할지 여부를 지정하는 연락처 선택 방법을 가지고 있습니다.안드로이드 연락처 선택기 의도가 항상 빈 추가 항목을 반환
문제는 내가하는 일과 관계없이 엑스트라가 항상 null 인 것으로 보이므로 액세스하려고 할 때 nullPointerException이 발생합니다.
의도 유형을 ContactsContract.Contacts.CONTENT_TYPE
으로 설정하면 사용자 정의 추가 기능이 재설정되지만 의심 스럽습니다. 의도
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
Bundle extras = new Bundle();
extras.putBoolean("isEditing", isEditing);
extras.putLong("shortcut", shortcut.getId());
intent.putExtras(extras);
startActivityForResult(intent, PICK_CONTACT_REQUEST);
그리고 에서 onActivityResult를()를 따기
연락
switch (requestCode) {
case (PICK_CONTACT_REQUEST):
if (resultCode == getActivity().RESULT_OK) {
Uri contactData = data.getData();
Bundle bundle = data.getExtras();
Boolean isEditing = false;
long shortcutId = 0;
if (bundle != null) {
Toast.makeText(getActivity(), "Bundle Not Null", Toast.LENGTH_SHORT).show();
if (bundle.containsKey("isEditing")) {
isEditing = bundle.getBoolean("isEditing", false);
Toast.makeText(getActivity(), "" + isEditing, Toast.LENGTH_SHORT).show();
}
if (bundle.containsKey("shortcutId")) {
shortcutId = bundle.getLong("shortcutId", 0);
Toast.makeText(getActivity(), "" + shortcutId, Toast.LENGTH_SHORT).show();
}
}
토스트 때문에 표시되지 않습니다 : 여기에
내가 지금 뭐하는 거지입니다 번들을 찾을 수 없습니다.Intent.putExtraString("isEditing", value)
을 사용하여 다른 워크 플로를 시도한 다음 intent.getStringExtra("isEditing", false)
번들로 엑스트라를 건너 뛰는 작업을 수행했지만 (아쉽게도 두 워크 플로의 차이를 이해하지 못했지만) 같은 문제에 직면했습니다. 도움을 주시면 감사하겠습니다.