【发布时间】:2018-11-13 18:02:09
【问题描述】:
为了避免创建多个活动,我有一个 Activity2,它的代码允许我从任何我想要的活动中传递一组片段。
privateArrayList<Fragment> fragArrayList;
fragArrayList = intent.getParcelableArrayListExtra("fragArrayList");
Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setFragment(fragArrayList.get(i));
}
});
private void setFragment(Fragment fragment) {
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction()
.replace(R.id.layout, fragment)
.addToBackStack(null)
.commit();
}
在 Activity1 我有这段代码(我知道这行不通)
Wrong 2nd argument type. Found: 'java.util.ArrayList<android.support.v4.app.Fragment>', required: 'java.util.ArrayList<? extends android.os.Parcelable>'
.
Intent intent= new Intent(Activity1.this, Activity2.class);
ArrayList<Fragment> fragArrayList = new ArrayList<>();
fragArrayList.add(new frag1());
fragArrayList.add(new frag2());
fragArrayList.add(new frag3());
fragArrayList.add(new frag4());
fragArrayList.add(new frag5());
intent.putParcelableArrayListExtra("fragArrayList"), fragArrayList);
关键是要让 fragArrayList 从 any Activity 移动到 Activity2。而且由于 fragArrayList 中的碎片会根据它们来自的活动而有所不同,因此我不能将它们添加到 Activity2 中的 ArrayList 中。
而且由于会有多个活动,因此在 Activity2 内部创建逻辑来处理用户来自的每个 Activity 的效率并不高。
如何将 ArrayList 从 Activity1 传递到 Activity2?
【问题讨论】:
标签: java android android-fragments arraylist