当通过意图返回字符串的阵列列表时,我会得到无效的值



我正在制作邮件应用程序。我想做的是打开列表 chosecontactsactivity 来自 composemailactivity ,选择一些联系人,然后单击"添加"到composeMailActivity。我要做的第一件事是在我通过string的活动之间通过的标准通过,并且在composeMailActivity中传递了正确的字符串。然后,我添加了arrayList的CC_4 - 联系人ID。在chooseContactsActivity中,调试时可以正确识别它,但是在composeMailActivity中,它返回null

我尝试的一些答案包括:1、2、3、4、5 ...

chosecontactsactsactivity:

addButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ArrayList<String> selectedIds = adapter.selectedIds;
            String text = "abc";
            Intent intent = new Intent();
            intent.putStringArrayListExtra("contacts_added", selectedIds);
            setResult(RESULT_OK, intent);
            finish();
        }
});

ComposeMailActivity:

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
            ArrayList<String> get_contacts = getIntent().getExtras().getStringArrayList("contacts_added");
        }
    }
}

您应该在onActivityResult(int requestCode, int resultCode, Intent data)中使用data Intent而不是getIntent()像这样

if (resultCode == RESULT_OK) {
            ArrayList<String> get_contacts = data.getExtras().getStringArrayList("contacts_added");
        }

我想尝试获取" contacts_added"表单"数据"。而不是致电getIntent()尝试

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
            ArrayList<String> get_contacts = data.getExtras().getStringArrayList("contacts_added");
        }
    }
}

希望这能解决您的问题。

最新更新