Android 访问联系人列表
我已经设法访问了联系人列表,选择了一个联系人,并在编辑文本中输入了号码。我面临的唯一问题是,当我在联系人列表中按下后退按钮时,应用程序停止。你能帮忙吗Android 访问联系人列表,android,Android,我已经设法访问了联系人列表,选择了一个联系人,并在编辑文本中输入了号码。我面临的唯一问题是,当我在联系人列表中按下后退按钮时,应用程序停止。你能帮忙吗 Intent contactIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); @Override protected void onActivityResult(int reqCode, int resultCode, Intent intent) { supe
Intent contactIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
@Override
protected void onActivityResult(int reqCode, int resultCode, Intent intent)
{
super.onActivityResult(reqCode, resultCode, intent);
switch (reqCode) {
case ADDRESS_REQUEST2:
EditText edittext2 = (EditText) findViewById(R.id.number2);
Uri uri2 = intent.getData();
Cursor cursor2 = getContentResolver().query(uri2, null, null, null, null);
cursor2.moveToFirst();
String phoneNumber2 = cursor2.getString(cursor2.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
edittext2.setText(phoneNumber2);
break;
case ADDRESS_REQUEST3:
EditText edittext3 = (EditText) findViewById(R.id.number3);
Uri uri3 = intent.getData();
Cursor cursor3 = getContentResolver().query(uri3, null, null, null, null);
cursor3.moveToFirst();
String phoneNumber3 = cursor3.getString(cursor3.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
edittext3.setText(phoneNumber3);
break;
case ADDRESS_REQUEST4:
EditText edittext4 = (EditText) findViewById(R.id.number4);
Uri uri4 = intent.getData();
Cursor cursor4 = getContentResolver().query(uri4, null, null, null, null);
cursor4.moveToFirst();
String phoneNumber4 = cursor4.getString(cursor4.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
edittext4.setText(phoneNumber4);
break;
default:
EditText edittext1 = (EditText) findViewById(R.id.number1);
Uri uri1 = intent.getData();
Cursor cursor1 = getContentResolver().query(uri1, null, null, null, null);
cursor1.moveToFirst();
String phoneNumber1 = cursor1.getString(cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
edittext1.setText(phoneNumber1);
break;
}
}
你需要检查一下
if (resultCode == RESULT_OK) { ...
首先
当您在未选择联系人选取器活动的情况下退出联系人选取器活动时,不会返回任何意图,因此会出现NullPointerException。resultCode值指示操作是否成功。作为一般规则,这将是一个成功的操作,否则
作为一个完全无关的旁白,您应该重构该方法…与该问题无关!我们讨论的是两个不同的问题如果你仔细阅读相关的问题,它不是关于一个特定的问题,而是关于能够调试崩溃,或者至少能够识别和收集调试崩溃所需的信息。你能把你的日志吗?