我想在我的代码中使用一个自定义的日期和时间选择器,为此我创建了一个单独的包,并将所有的日期和时间选择器类放在那里。如果我从主Activity运行它,代码运行得很顺利,但当我想从片段中调用时,它无法识别**getSupportFragmentManager()**方法。我从片段中进行的调用是:
SimpleDateTimePicker simpleDateTimePicker = SimpleDateTimePicker.make(
"Set Date & Time Title",
new Date(),
this,
getSupportFragmentManager()
);
simpleDateTimePicker.show();
请帮帮忙,谢谢你们。
5条答案
按热度按时间vu8f3i0k1#
"你不"
您必须从片段呼叫
getChildFragmentManager()
。尝试呼叫getActivity().getSupportFragmentManager()
将会掷回错误。46scxncf2#
首先检查您的
frgaments
是否从android.support.v4.app.Fragment
或android.app.Fragment
扩展。如果是android.app.Fragment
,则调用getActivity().getFragmentManager();
;如果是从支持frgament
扩展,则调用getActivity().getSupportFragmentManager();
fquxozlt3#
看起来
SimpleDateTimePicker
类是您自己类,它只接受android.app.FragmentManager
,而不接受android.support.v4.app.FragmentManager
因此您只能将该类与API 11或更高版本一起使用如果您希望使用android.support.v4.app.FragmentManager
,则需要编辑您SimpleDateTimePicker
以在构造函数中接受android.support.v4.app.FragmentManager
编辑:
好的,有两个不同的类:
android.app.FragmentManager
和android.support.v4.app.FragmentManager
。第二个是第一个的兼容性实现。大多数应用程序使用第二个,因为它允许在API 11之前使用。您的链接中的类使用第一个。有两种方法可以修复它:1st -你开始使用
android.app.FragmentManager
而不是android.support.v4.app.FragmentManager
。这将导致应用程序只在api 11以上工作。第二种方法是将
SimpleDateTimePicker
的代码改为使用android.support.v4.app.FragmentManager
。我认为这是更正确的方法。ugmeyewa4#
这对我有用
试试看。
mm9b1k5b5#
这对我很有效:
getChildFragmentManager()