我一直在开发一个带有标签的可滑动视图的项目。
标签以片段形式存在。我想定期从主要活动中运行片段方法。
为了运行这个方法,我不会'拥有片段的ID。我在其他帖子中读到:
String tag = "android:switcher:" + TabActivity.this.viewPager.getId() + ":" + "0";
Tab1Fragment fragment = (Tab1Fragment) getSupportFragmentManager().findFragmentByTag(tag);
fragment.someMethod();
将返回我想要的片段,恰好是第零个或第一个标签。但是,运行此代码会返回nullpointer异常。
任何帮助将不胜感激。谢谢:))
答案 0 :(得分:0)
在您的代码中,您必须拥有:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.framelayout, new SomeXYZFragment(), "some_xyz_fragment");
ft.commit();
添加以下行:
fm.executePendingTransactions();
在行ft.commit();
之后
试试这个。它应该工作。