2017-01-25 5 views
0

У меня есть ViewPager и TabLayout за один актив. Я использую ViewPagerAdapter, чтобы отобразить мои три фрагмента.Экземпляр фрагмента из его активности

Теперь я хочу вызвать некоторую функцию из одного фрагмента. Как только нажата кнопка из действия, список фрагмента должен быть изменен. Таким образом, появилась ошибка, что, как только я нажимаю кнопку, элемент списка фрагмента является нулевым, потому что этот элемент не объявлен в активности, а объявлен в фрагменте. Итак, как взять весь экземпляр фрагмента, чтобы список можно было легко изменить. Я использовал:

(PatientHistoryFragment)getSupportFragmentManager().findFragmentByTag("android:switcher:" 
    + R.id.myRecordsViewPager 
    + ":" 
    + mViewPager.getCurrentItem()); 

, но она возвращается null.

Может ли кто-нибудь помочь мне с этим?

+0

Пожалуйста, пост более код и ошибки журналы – Rohit

+0

View.OnClickListener фильтр = новый View.OnClickListener() { общественного недействительный OnClick (View v) { PatientHistoryFragment пациент = (PatientHistoryFragment) getSupportFragmentManager(). FindFragmentByTag (» android: switcher: "+ R.id.myRecordsViewPager +": "+ mViewPager.getCurrentItem()); patient.filterShow (MyRecords.this, MyRecords.patientPersonUUid); } }; – ritwik

+0

есть функция фильтра в patienthistoryfragment, которую я должен вызывать из активности myrecords, но я получаю ошибку null в переменной пациента – ritwik

ответ

0

Проблема, которая идет в том, что адаптер, который я добавил в ViewPager был: -

ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 

где мой ViewPagerAdapter был: - class ViewPagerAdapter extends FragmentStatePagerAdapter

благодаря которому моя переменная

(PatientHistoryFragment)getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.myRecordsViewPager + ":" + mViewPager.getCurrentItem()); 

возвращал null. Но я изменил класс ViewPagerAdapter на: - class ViewPagerAdapter extends FragmentPagerAdapter (Короче говоря, я удалил State), и теперь он работает. Спасибо всем :)