Как получить один и тот же экземпляр дочерних фрагментов (имеющих recyclerview) во всех фрагментах viewpager?

Я застрял в ситуации, когда у меня есть обзор повторов с данными об элементах, и мне нужно выбрать один и тот же экземпляр во всех фрагментах (три) окна просмотра, чтобы работать с одним и тем же просмотрщиком.

Что я сделал:

Я сделал один отдельный фрагмент имен как ItemListFragment с общими кнопками и опциями в списке, и теперь пытаюсь добавить его в качестве дочернего фрагмента в мои фрагменты окна просмотра. Я могу добавить их как дочерний фрагмент, но на этом этапе мне нужно создать 3 разных ItemListFragment для всех PrentFragments.

Пожалуйста, помогите мне преодолеть эту ситуацию или предложите любой другой способ использования общего списка переработчиков во всех трех фрагментах. Я искал stackru, но ничего не помогло.

Вот изображение, чтобы получить представление о ситуации:

введите описание изображения здесь

1 ответ

В этом случае вы можете попробовать использовать метод глобальной статической ссылки.

Объявите свое дочернее представление в классе Application (класс, который расширяет класс Application Android).

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, имеет ли он нулевое значение или нет, если его нулевое значение инициализирует его обычно, как и другие фрагменты chilfragment, поскольку его ссылка является глобальной, varibale в AppController теперь содержит экземпляр childfragment.

Теперь во Фрагменте B проверьте, является ли глобальная ссылка нулевой или нет, так как вы инициализировали ее во Фрагменте A, вы не получите ноль, теперь присоедините childFragment к Фрагменту B, как обычные дочерние фрагменты.

Другие вопросы по тегам