在自定义视图类中访问FragmentManager [英] Accessing FragmentManager in a custom view class

查看:83
本文介绍了在自定义视图类中访问FragmentManager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的自定义视图中,我有一个运行简单游戏的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆