-3
 ArrayList<String> list = new ArrayList<String>();
 list.add(p);

我想通过使用 putStringArray.am 的意图发送列表数据未能通过 getIntent() 检索。

请给我很好的语法来解析数据或示例代码

4

4 回答 4

2

在您的接收意图中,您需要执行以下操作:

Intent i = getIntent();  
my_list = i.getStringArrayListExtra("list");
于 2013-07-20T07:11:40.023 回答
2

ArrayList 实现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"); 
于 2013-07-20T07:12:43.613 回答
1

如果您的活动在同一进程中运行,也就是说,如果您不在清单文件中使用 android:proces 属性,那么您可以通过使用单例或静态字段轻松共享您需要的任何对象。Intent由于您的活动已同步并在主 UI 线程中运行,因此无需在内部发送对象。如果你真的想把它封装成一个Intent,你需要实现Parcelable接口(你也可以使用Serializable但它有更大的开销)。

于 2013-07-20T07:14:14.297 回答
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");
于 2013-07-20T07:32:21.740 回答