将数据列表从一个活动传递到另一个活动

我如何将ArrayList从一个活动传递给其他活动?

这取决于arraylist的types

  • 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)

然后,你可以通过用键string作为参数replaceputget下一个活动,例如

 myIntent.getStringArrayListExtra("arrayPeople"); 

你可以在bundle中创build一个bundle,把laebeb提供的parceable数组列表设置为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); 

据我所知,创build静态类,并把你的数组列表中,而你从一个活动到另一个遍历。

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

UPDATE
我已经学会了,这是一个可怕的做法。 当对象被擦除/重新创build时,静态值可能会丢失。 然后我们也把大量的数据放在内存中。 使用任何像Parcelable是一个很好的做法

在撤销的活动,你应该使用

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

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

当你创build意图。 你可以通过设置数据

 intent.putExtra("keyName", "somevalue"); 

当意图B开始时,您可以通过获取数据

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