ArrayList<String> list = new ArrayList<String>();
list.add(p);
我希望使用putStringArray.am通过意图发送列表数据,但无法通过getIntent()进行检索。
请给我一个很好的语法来解析数据或示例代码
答案 0 :(得分:2)
在您的接收意图中,您需要:
Intent i = getIntent();
my_list = i.getStringArrayListExtra("list");
答案 1 :(得分:2)
ArrayList inmplements Serializable
。
http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
假设您的ArrayList
类型为字符串
ArrayList<String> list = new ArrayList<String>();
list.add(p);
Intent i = new Intent(MainActivity.this,SecondActivity.class);
i.putExtra("key", list);
startActivity(i);
接收
Intent in = getIntent();
ArrayList<String> list = in.getStringArrayListExtra("key");
答案 2 :(得分:1)
如果您的活动在同一个过程中运行,也就是说,如果您不在清单文件中使用android:proces属性,那么您可以使用单例或静态字段轻松共享所需的任何对象。由于您的活动已同步并在主UI线程中运行,因此无需在Intent
内发送对象。如果你真的想将它封装到Intent
中,你需要实现Parcelable
接口(你也可以使用Serializable
,但它有更大的开销)。
答案 3 :(得分:1)
第一项活动的代码
ArrayList<String> arraylist1= new ArrayList<String>();
Intent intent= new Intent(FirstActivity.this, SecondActivity.class);
Bundle Ext= new Bundle();
Ext.putStringArrayList("ArrayName", arraylist1);
intent.putExtras(Ext);
startActivity(intent);
您的第二个活动的代码
ArrayList<String> arraylist2= new ArrayList<String>();
Intent intent= getIntent();
arraylist2 = intent.getExtras().getStringArrayList("Arrayname");