Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在不扩展活动的情况下获取片段管理器_Android_Android Fragments - Fatal编程技术网

Android 如何在不扩展活动的情况下获取片段管理器

Android 如何在不扩展活动的情况下获取片段管理器,android,android-fragments,Android,Android Fragments,我正在使用库来构建一些卡,我的java扩展库类现在我需要在我的java类中使用FragmentManager我尝试使用内部类来实现这一点,但如果您有活动参考:活动。getFragmentManager() 如果您有一个片段引用:Fragment.getFragmentManager() 它们都是public方法,但您需要对活动或片段的引用 另外,尽管我不推荐使用它,但是如果您有视图引用,那么View.getContext()方法很可能是一个活动,因此您可以通过这种方式创建并获取碎片管理器。但这是

我正在使用库来构建一些卡,我的java扩展库类现在我需要在我的java类中使用FragmentManager我尝试使用内部类来实现这一点,但如果您有
活动
参考:
活动。getFragmentManager()

如果您有一个
片段
引用:
Fragment.getFragmentManager()

它们都是
public
方法,但您需要对活动或片段的引用

另外,尽管我不推荐使用它,但是如果您有
视图
引用,那么
View.getContext()
方法很可能是一个
活动
,因此您可以通过这种方式创建并获取
碎片管理器
。但这是潜在的危险,如果Android的实现发生变化,它随时可能停止工作,所以你应该真正知道自己在做什么。传递活动/片段引用确实是一种方法。

getFragmentManager()
是一种
公共的
非静态的
活动方法。因此,要获得
碎片管理器
,您需要有
活动
上下文
。因此,即使您没有扩展
活动
类,也需要有它的
上下文

再看一下这个方法的描述,它把事情弄清楚了

返回FragmentManager以与与此活动关联的片段进行交互


因此,如果没有
活动
碎片管理器
就不存在。

您可以将其作为外部依赖项接受,作为构造函数或方法的参数。粘贴下面的代码:public class CustomExpandCard extensed CardExpand{String text1;public CustomExpandCard(Context Context,String text1,String text2,String text3,String text4){super(Context,R.layout.carddemo_example_internal_expand);this.text1=text1;}}}我需要创建一个内部类并将上下文传递给它吗?事实上,我是android新手,你能告诉我一些示例代码吗?它会很有帮助
/**
 * Return the FragmentManager for interacting with fragments associated
 * with this activity.
 */
public FragmentManager getFragmentManager() {
    return mFragments.getFragmentManager();
}