0

我想在第一个活动中使用以下代码从一个活动发送StringList<String>另一个活动:

Intent intent1=new Intent(Activity2);
Bundle b=new Bundle();
b.putStringArrayList("IDs", (ArrayList<String>) ids);
intent1.putExtra("message","IDs");
intent1.putExtras(b);

我正在第二个活动中访问此内容,如下所示:

 Bundle b= intent.getExtras();
 String str=b.getString("message");
 ArrayList<String> list=b.getStringArrayList("IDs");

问题是:即使得到正确的值,我也得到str了。我在使用的过程中遗漏了什么吗?nulllistBundle

4

3 回答 3

2

你需要做

Intent intent1=new Intent(Activity2);
Bundle b=new Bundle();
b.putStringArrayList("IDs", (ArrayList<String>) ids);
b.putExtra("message","IDs");
intent1.putExtras(b);

而不是使用

Intent intent1=new Intent(Activity2);
Bundle b=new Bundle();
b.putStringArrayList("IDs", (ArrayList<String>) ids);
intent1.putExtra("message","IDs");
intent1.putExtras(b);

原因是putExtras替换了所有以前设置为的值Intent

于 2013-10-22T06:44:22.650 回答
1

您做错的是,您将“消息”作为意图传递并试图从捆绑包中获取它

intent1.putExtra("message","IDs");

而是使用

b.putString("message","IDs");
于 2013-10-22T06:44:03.560 回答
0

像这样发送 extar 参数

            Intent intent1 = new Intent(this, Activity2.class);

        searchUserIntent.putStringArrayListExtra("IDs", ids);

        startActivity(searchUserIntent);

并获得意图参数使用

            Intent intent2 = getIntent();
    ids2 = intent2.getStringArrayListExtra("IDs");
于 2013-10-22T06:44:16.290 回答