我正在使用库来构建一些卡片,我的java扩展库类现在我需要在我的java类中使用FragmentManager我尝试使用内部类但是获取空指针异常
答案 0 :(得分:0)
如果您有Activity
引用:activity.getFragmentManager()
如果您有Fragment
引用:fragment.getFragmentManager()
它们都是public
方法,但您需要引用活动或片段。
此外,虽然我不推荐它,但如果您有View
引用,则view.getContext()
方法可能为Activity
,这样你就可以通过这种方式进行投射并获得FragmentManager
。但这有潜在危险,如果Android的实施发生变化,可能会随时停止工作,所以你应该真正知道自己在做什么。传递活动/片段参考确实是可行的方法。
答案 1 :(得分:0)
getFragmentManager()
是public
的{{1}} non-static
方法。因此要获得Activity
,您需要FragmentManager
的{{1}}。因此,即使您没有延长activity
课程,也需要拥有context
。
另外看一下这个方法的描述,它可以解决问题。
返回FragmentManager以与与此活动相关联的片段进行交互。
activity
因此,如果没有context
,则/**
* Return the FragmentManager for interacting with fragments associated
* with this activity.
*/
public FragmentManager getFragmentManager() {
return mFragments.getFragmentManager();
}
不存在。