如何从片段中调用 getSupportFragmentManager()?
Posted
技术标签:
【中文标题】如何从片段中调用 getSupportFragmentManager()?【英文标题】:How to call getSupportFragmentManager() from a fragment? 【发布时间】:2015-12-15 14:18:54 【问题描述】:我想在我的代码中使用自定义日期和时间选择器,为此我创建了一个单独的包并将所有日期和时间选择器类放在那里。 如果我从主要活动中运行代码,则代码运行顺利,但是当我想从片段调用时,它无法识别 getSupportFragmentManager() 方法 我从我的片段中拨打的电话是:
SimpleDateTimePicker simpleDateTimePicker = SimpleDateTimePicker.make(
"Set Date & Time Title",
new Date(),
this,
getSupportFragmentManager()
);
simpleDateTimePicker.show();
请帮忙,谢谢大家。
【问题讨论】:
getActivity().getSupportFragmentManager() 试过这个吗? 您可以直接使用 getFragmentManager() 代替 getSupportFragmentManager() 是的,但它不起作用 试过也没有运气:( 它显示错误:(106, 43) 错误: 不兼容的类型: android.app.FragmentManager 无法转换为 android.support.v4.app.FragmentManager跨度> @ManishNegi 您需要从 android.support.v4.app.FragmentActivity 扩展您的类,而不仅仅是从标准 android.Activity 来获取此方法。 【参考方案1】:你没有。
您需要从 Fragment 调用 getChildFragmentManager()
。尝试调用getActivity().getSupportFragmentManager()
将引发错误。
【讨论】:
【参考方案2】:首先检查您的frgaments
扩展自android.support.v4.app.Fragment
或android.app.Fragment
。如果是android.app.Fragment
,则调用getActivity().getFragmentManager();
,或者如果它从支持frgament
扩展,则调用getActivity().getSupportFragmentManager();
【讨论】:
【参考方案3】:看起来SimpleDateTimePicker
类是你自己的类,它只接受android.app.FragmentManager
,而不接受android.support.v4.app.FragmentManager
。因此,您只能将该类与 API11 或更高版本一起使用。如果你想使用android.support.v4.app.FragmentManager
,你需要编辑你的SimpleDateTimePicker
在构造函数中接受android.support.v4.app.FragmentManager
编辑:
好的,有 2 个不同的类:android.app.FragmentManager
和 android.support.v4.app.FragmentManager
。第二个是第一个的兼容性实现。大多数应用程序使用第二个,因为它允许在 API 11 之前使用。链接中的类使用第一个。有两种方法可以解决它:
第一 - 你开始使用android.app.FragmentManager
而不是android.support.v4.app.FragmentManager
。它将导致应用程序仅在 api 11 以上工作。
第二种方法是将SimpleDateTimePicker
的代码更改为使用android.support.v4.app.FragmentManager
。我认为这是更正确的方式。
【讨论】:
实际上我没有编写该课程的代码,我只是一个初学者,所以我从link获取代码 @ManishNegi,那么您应该花时间理解代码,而不是“按原样”使用它并尝试使用它。 好的,但我并没有得到真正的东西,最初我在另一个程序中使用了一个空白活动并且它正在工作【参考方案4】:这对我有用
getBaseActivity().getFragmentManager()
试试看。
【讨论】:
【参考方案5】:这对我有用:
getChildFragmentManager()
【讨论】:
以上是关于如何从片段中调用 getSupportFragmentManager()?的主要内容,如果未能解决你的问题,请参考以下文章