java - 如何传递ArrayList<Fragment>?

标签 java android android-fragments arraylist

为了避免创建多个 Activity ,我有一个 Activity2,其中包含此代码,允许我从任何我想要的 Activity 中传递一组 fragment 。

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 从任何 Activity 移动到Activity2。由于 fragArrayList 内的 frag 会根据它们来自的 Activity 的不同而有所不同,因此我不能将它们添加到 Activity2 内的 ArrayList 中。

由于存在多个 Activity ,因此在 Activity2 内创建逻辑来处理用户来自的每个 Activity 的效率并不高。

如何将 ArrayList 从 Activity1 传递到 Activity2?

最佳答案

fragment 不可打包,因此您无法通过 Intent 传递它们。您可以通过 Intent 传递完全限定的 fragment 类名称,然后通过反射在 Activity2 中实例化 fragment 。

关于java - 如何传递ArrayList<Fragment>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53286995/

相关文章:

android - 如何使用 Espresso 从重复使用的 Fragment 中的多个相同 id 中获取 EditText View ?

java - Android NDK反编译 native 代码的可能性

java - 如何在谷歌数据流中创建个性化WindowFn

android - Android 手机支持 H.264 AVC 吗?

Java 已启动但返回退出代码=13 eclipse

android - 当 Activity 配置更改屏幕大小和方向时强制 fragment 重新创建

android - 带有 DialogFragment 的上下文操作栏

java - MalformedURLException : no protocol with Xalan transformer

java - 如何将位图字体添加到 libgdx 中的对话框

android - 有条件地应用 GMS google-services 插件