【发布时间】:2016-08-31 18:36:58
【问题描述】:
在我的应用程序中,viewPager 中有 3 个片段。
对于第一个片段,我想在按下按钮后重新加载视图(基本上再次调用onCreateView())。
为了获得这个功能,我决定使用FragmentTransaction、detach()、attach() 和commit() 片段。
在片段中我创建了SetData() 方法:
public void setData() {
Fragment frg = null;
frg = mainMenu.getFragmentByPosition();
final android.support.v4.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frg);
ft.attach(frg);
ft.commit();
}
在拥有 viewPager 的活动中,我有 getFragmentByPosition() 方法:
public Fragment getFragmentByPosition() {
String tag = "android:switcher:" + R.id.viewpager + ":" + viewPager.getCurrentItem();
return getSupportFragmentManager().findFragmentByTag(tag);
}
问题是我在getFragmentByPosition() 中得到 NullPointerException
更新
问题是我无法获得对当前显示片段的引用。
adapter.getItem(1) - 返回null
getFragmentManager().getFragments().get(0) - 返回null
【问题讨论】:
-
你试过
adapter.notifyDataSetChanged();
标签: android android-viewpager fragment fragmentpageradapter fragmentmanager