我想在第一个活动中使用以下代码将String
和List<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
获得了正确的值,我的null
仍为list
。我在使用Bundle
?
答案 0 :(得分: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
的所有先前值。
答案 1 :(得分:1)
你做错了是,你正在传递'消息'作为意图并试图从捆绑
获取它intent1.putExtra("message","IDs");
改为使用
b.putString("message","IDs");
答案 2 :(得分:0)
像这样发送extar参数
Intent intent1 = new Intent(this, Activity2.class);
searchUserIntent.putStringArrayListExtra("IDs", ids);
startActivity(searchUserIntent);
并获取意图参数
Intent intent2 = getIntent();
ids2 = intent2.getStringArrayListExtra("IDs");