将数据列表从一个活动传递到另一个活动
我如何将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作为参数replaceput
来get
下一个活动,例如
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"); }