Чтобы избежать создания нескольких действий, у меня есть одна 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 будут отличаться в зависимости от активности, из которой они исходят, я не могу просто добавить их в ArrayList внутри Activity2 .
И поскольку будет несколько действий, неэффективно создавать логику внутри Activity2 для обработки из каждого действия, из которого пришел пользователь.
Как я могу передать ArrayList из Activity1 в Activity2?