我在一项活动中有ViewPager
和TabLayout
。我正在使用ViewPagerAdapter
来显示我的三个片段。
现在我想从一个片段中调用一些函数。只要从活动中单击一个按钮,就应该更改片段列表。因此,错误即将发生,只要我单击按钮,片段的list元素就为null,因为该元素未在activity中声明,而是在片段中声明。那么如何获取片段的整个实例以便列表可以很容易地改变。我用过:
(PatientHistoryFragment)getSupportFragmentManager().findFragmentByTag("android:switcher:"
+ R.id.myRecordsViewPager
+ ":"
+ mViewPager.getCurrentItem());
但它正在返回null
。
有人可以帮我吗?
答案 0 :(得分: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),现在它可以工作了。谢谢大家:)