2

我陷入了这样一种情况,即我有 recyclerview,其中包含项目数据,我需要在 viewpager 的所有片段(三个)中获取相同的实例以在同一个 recyclerview 上操作。

我做了什么 :

我已经使用列表中的常用按钮和选项将一个单独的片段名称命名为 ItemListFragment,现在尝试将其作为子片段添加到我的 viewpager 片段中。我可以将它们添加为子片段,但此时我必须为所有 PrentFragments 创建 3 个不同的 ItemListFragment。

请帮助我克服这种情况或建议在所有 3 个片段中使用 common recyclerlist 的任何其他方式。我搜索了stackoverflow,但没有任何帮助。

这是了解情况的图像:

在此处输入图像描述

4

1 回答 1

1

在这种情况下,您可以尝试使用全局静态引用技术。

在 Application 类(扩展 Android 的 Application 类的类)中声明您的 childview。

public class AppController extends Application{
  public static final String LOG_TAG = ApplicationController.class
        .getSimpleName();

  // Application Instance
  private static ApplicationController applicationController = null;

  public static ListView childview;
  public static ChildAdapter childAdapter;

   @Override
   public void onCreate() {
    super.onCreate();
    applicationController = this;
   }
}

现在在你的任何片段中假设片段A,检查childFragment的全局对象是否为null,如果它的null像其他chilfragment一样正常初始化它,因为它的引用是全局的,AppController中的变量现在包含childfragment的实例。

现在在 Fragment B 检查全局引用是否为 null,因为您在 Fragment A 中对其进行了初始化,所以您不会得到 null,现在将 childFragment 附加到 Fragment B 就像普通的 childfragments

于 2017-02-24T07:08:02.127 回答