我的Android应用程序需要在首次使用该应用程序时显示一个对话框。此应用程序还使用扩展Androids Application类的自定义Application类。我想在此对话框中使用DialogFragment(因为文档声明不推荐使用showDialog()方法),并在我的自定义Applicaton类的onCreate()方法中显示此DialogFragment。显示DialogFragment的代码如下:
FragmentManager manager = getSupportFragmentManager();
DialogFragment firstUseDialog = new FirstUseDialog();
firstUseDialog.show(manager, "dialog");
但getSupportFragmentManager()方法在Application类中不可用,仅在Activity类中可用。所以我的问题是,是否有另一种方法来显示Application类的对话框。
我总是可以将第一个使用代码移动到我的主要活动中,但我只想检查是否可以在Activity类中执行。我觉得应用程序首次使用检查应该是Application类的一部分而不是Activity类。
答案 0 :(得分:2)
但getSupportFragmentManager()方法在Application类中不可用,只在Activity类中可用。
getSupportFragmentManager()
也无法从Activity
获得。它可以从Android支持包的FragmentActivity
获得。
所以我的问题是,是否有另一种方法可以显示Application类的对话框。
不那样。
我觉得应用程序首次使用检查应该是Application类的一部分而不是Activity类。
您当然欢迎您的意见。恕我直言,显示UI是一项活动的责任,只是一项活动。这种情况恰好仅在第一次使用应用程序时发生,这并不会改变这种情况。
答案 1 :(得分:0)
如果你的班级有对象上下文试试这个方法
(FragmentActivity)context).getSupportFragmentManager()