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值指示操作是否成功。作为一般规则,这将是一个成功的操作,否则


作为一个完全无关的旁白,您应该重构该方法…

与该问题无关!我们讨论的是两个不同的问题如果你仔细阅读相关的问题,它不是关于一个特定的问题,而是关于能够调试崩溃,或者至少能够识别和收集调试崩溃所需的信息。你能把你的日志吗?