在自定义视图类中访问FragmentManager [英] Accessing FragmentManager in a custom view class
问题描述
在我的自定义视图中,我有一个运行简单游戏的Java类.游戏结束后,我想显示我的 DialogFragment
,但是 getFragmentManager()
方法似乎未定义.
In my custom view I have a Java class running a simple game. When the game is finished I'd like to display my DialogFragment
, but the getFragmentManager()
method seems to be undefined.
FragmentManager manager = getFragmentManager();
Finish finish = new Finish();
finish.show(manager, "done");
我尝试通过 Fragment
obj使经理成为:
I've tried getting the manager through a Fragment
obj as:
Fragment fragment = new Fragment();
FragmentManager manager = fragment.getFragmentManager();
但是返回为空.我知道这是一个新的 Fragment
实例,但是我不确定要赋予它什么值.任何帮助将不胜感激.
But that returns as null. I know it's a new Fragment
instance, but I'm not sure what value to give it. Any help would be much appreciated.
推荐答案
如果视图附加到 Activity
,则只需执行
if your view is attached to an Activity
then simply you can do
((Activity)getContext()).getFragmentManager();
或
((ActivityCompat)getContext()).getSupportFragmentManager();
为了安全起见,请确保通过执行以下操作检查 View Context
是否是 Activity
的实例:
and to be more safe please make sure you check against of the View Context
is instance of an Activity
by doing such:
if(getContext() instanceof Activity)// do something
一个更好的解决方案是,我依赖于 View
和 Activity
之间的回调.
and a better solution is, i had rely on a callback between the View
and the Activity
.
这篇关于在自定义视图类中访问FragmentManager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!