将arraylist从一个活动传递给另一个活动

时间:2011-01-24 10:16:33

标签: android

如何将ArrayList从一项活动传递到另一项活动?

5 个答案:

答案 0 :(得分:41)

这取决于arraylist的类型

  • putIntegerArrayListExtra(String name, ArrayList<Integer> value)

  • putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)

  • putStringArrayListExtra(String name, ArrayList<String> value)

  • putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value)

然后,您可以通过将put替换为get并使用键字符串作为参数来阅读下一个活动,例如

myIntent.getStringArrayListExtra("arrayPeople");

答案 1 :(得分:3)

你可以在labeeb提供的bundle put parcelable array list中创建一个bundle,并设置为intent这里的代码是

Intent i = new Intent(this,name.class);
Bundle b = new Bundle();
b.putIntegerArrayListExtra(String name, ArrayList<Integer> value);
//b.putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value);
//b.putStringArrayListExtra(String name, ArrayList<String> value);
i.putExtra(String name,b);
startActivity(i);

将数据导入另一项活动,如

//pseudo code
Bundle b = getIntent().getExtra().putParcelableArrayListExtra(String name);

答案 2 :(得分:0)

根据我的说法,创建静态类,并在从一个活动遍历到另一个活动时将数组列表放入其中。

当您到达另一个活动时,请访问您在静态类中存储的值。

<强>更新
我已经及时了解到这是一种可怕的做法。擦除/重新创建对象时,静态值可能会丢失。然后我们也在内存中放入了大量数据。使用像Parcelable这样的东西是一种很好的做法

答案 3 :(得分:0)

在撤销的活动中,您应该使用

Bundle bundle = getIntent().getExtras();             
ArrayList<String> stringArray = bundle.getStringArrayList(ParentActivity.STRING_LIST);

其中ParentActivity.STRING_LIST是列表的关键常量。

答案 4 :(得分:-2)

创建意图时。你可以通过

设置数据
intent.putExtra("keyName", "somevalue");

当意图B开始时,您可以通过

获取数据
Bundle extras = getIntent().getExtras();
if(extras !=null)
{
   String value = extras.getString("keyName");
}