Добавление или удаление элементов во фрагменте на основе входных данных, предоставленных другим фрагментом того же действия - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть два фрагмента в одном упражнении.Основываясь на флаге, который основан на входных данных, введенных во фрагменте 1, я должен добавить элемент или не должен добавлять элемент во второй фрагмент.Моя проблема в том, что условие удовлетворяется в первый раз, если я возвращаюсь к первому фрагменту и меняю входные данные.Это не отражено во втором фрагменте.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

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

Так в MainActivity:

private bool flag = false; 

Во фрагменте используйте что-то вроде этого:

((MainActivity)getActivity()).flag = true 

А во втором фрагменте

if ( ((MainActivity)getActivity()).flag ){
// DO SMETHING
}

У меня есть приложение с таким же подходом, и оно отлично работает.

0 голосов
/ 11 апреля 2019

Просто попробуйте это,

Используя FragmentPagerAdapter, вы можете показать и скрыть.изначально

boolean tabUpdate = false;

Установить в качестве обновленной функции счетчика элементов на адаптере

 @Override
    public int getCount() {
            if (tabUpdate){
                return noOfFragments;
            } else {
                return noOfFragments - 1;
            }
  }

Для получения изменений на основе первого фрагмента необходимо обновить адаптер и установить пейджер представления для следующего фрагмента

    pagerAdapter.notifyDataSetChanged(); // updated the adapter 
    mTabLayout.setViewPager(mViewPager); 
    mViewPager.setCurrentItem("fragment to set on next view");

Для добавления или удаления обеих функций необходимо обновить адаптер.

...