我使用以下命令启动对话框片段
FragmentTransaction ft =
getFragmentManager().beginTransaction();
MyDialogFragment dialog = new MyDialogFragment()
dialog.show(ft, "dialog");
然后我就去处理了
Fragment prev = getFragmentManager().findFragmentByTag("dialog");
但是一旦我得到prev
,我如何检查它是否显示呢?
背景故事
我的问题是,我的循环代码不断地启动对话框。但是,如果对话框已经显示,我不希望它再次启动。这个背景故事只是为了提供上下文。我寻求的答案不是:“将其移出循环”。
5条答案
按热度按时间xoefb8l81#
更新:团队也可以尝试下面的调用,我认为它将工作逻辑:
这应该意味着它在前景显示,如果我没有错的话。
9jyewag02#
我把它添加到我的自定义对话框片段中,这样我就不必担心外部的任何逻辑。用一个
boolean shown
字段覆盖show()
和onDismiss()
方法:如果你想检查它是否显示,你可以为
shown
布尔值创建一个getter。jdzmm42g3#
只需检查它是否为空
或者,您可以检查片段
prev
当前关联的Activity,但是,请确保您在之后询问,确保它不为null,否则您将得到一个NullPointerException。wvmv3b1j4#
100%正常运行时间
初始化:💉
在任何地方使用{ progressDialog.showDialog() }😎
e5njpo685#
Kotlin风格: