【问题标题】:When Returning an ArrayList of Strings Via Intent I Get null Value当通过 Intent 返回字符串的 ArrayList 时,我得到空值
【发布时间】:2018-05-24 04:51:15
【问题描述】:

我正在制作一个邮件应用程序。我要做的是从 composeMailActivity 中打开列表 chooseContactsActivity,选择一些联系人并单击添加以将其发送回去到composeMailActivity。我做的第一件事是在我传递string 的活动之间进行标准传递,并且在composeMailActivity 中传递并识别了正确的字符串。然后我添加了arrayListstrings - 联系人ID。在chooseContactsActivity 中调试时可以正确识别,但在composeMailActivity 中返回null

我尝试的一些答案包括:12345...

选择联系人活动:

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();
        }
});

撰写邮件活动:

 @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");
        }
    }
}

【问题讨论】:

    标签: java android android-intent arraylist null


    【解决方案1】:

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

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

    【讨论】:

    • 就是这样,我会尽快接受你的回答:D
    【解决方案2】:

    我想尝试从“数据”中获取“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");
            }
        }
    }
    

    希望这能解决您的问题。

    【讨论】:

    • 它有效,但我接受了 tomtom 的回答,因为他几秒钟前就回答了,但我投了赞成票。谢谢你的回答
    • 没问题。很高兴能帮到你。
    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 2012-09-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    相关资源
    最近更新 更多