Android-getSupportFragmentManager返回null
我试图使用片段的标记获取片段的特定实例,但我使用的是viewpager,这使事情变得困难。我用过:Android-getSupportFragmentManager返回null,android,android-fragments,fragmentmanager,Android,Android Fragments,Fragmentmanager,我试图使用片段的标记获取片段的特定实例,但我使用的是viewpager,这使事情变得困难。我用过: public Fragment getFragmentByPosition(int pos) { String tag = "android:switcher:" + R.id.pager + ":" + pos; FragmentManager fragmentManager = this.getSupportFragmentManager(); Fragment fra
public Fragment getFragmentByPosition(int pos) {
String tag = "android:switcher:" + R.id.pager + ":" + pos;
FragmentManager fragmentManager = this.getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
return fragment;
}
查找片段,但getSupportFragmentManager返回null
上面的方法在活动中,不在viewpager适配器类中,我不知道在这里该做什么。非常感谢您的帮助,谢谢 您可以从这里使用SmartViewPager 从这个类扩展视图分页器,并使用getActiveFragment方法获取片段。您还可以更改此方法的实现,以按标记名获取片段
public Fragment getActiveFragment(String name) {
final Fragment fragmentByTag = fragmentManager.findFragmentByTag(name);
if (fragmentByTag == null) {
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
fragmentManager.dump("", null, new PrintWriter(outputStream, true), null);
final String s = new String(outputStream.toByteArray(), Charsets.UTF_8);
throw new IllegalStateException("Could not find fragment via hacky way.\n" +
"We were looking for name: " + name + "\n" +
"Fragment with this name does not exists, or hack stopped working.\n" +
"Current fragment manager dump is: " + s);
}
return fragmentByTag;
}
您使用的是Fragment还是support Fragment?请发布您的完整活动类我使用的是v4支持库中的support Fragment,很遗憾,我无法发布完整的类,因为我实际上不允许发布。我想看看您在哪里使用该方法。FragmentManager与活动的生命周期有着密切的关系,这就是为什么。既然你把它公之于众,你就有可能在某个地方使用它,当你看到问题的时候,我甚至不能得到fragmentmanager,所以这是行不通的。我仍然需要在这里给它fragmentmanager,因为getSupportFragmentManager不工作,这也不会。。。