获取一个打开的对话框而不对其进行任何引用

发布于 2024-12-05 12:53:33 字数 84 浏览 2 评论 0原文

在 Android 上,如果我在屏幕中添加了一个对话框,并且打开了另一个活动,我如何从该活动中获取所有打开的对话框?

我需要关闭其中之一。

On Android, if I added a Dialog into the screen and another Activity opens, how can I get from that Activity all the open Dialogs?

I need to close one of them.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮光之海 2024-12-12 12:53:33

您应该创建一个类并扩展 DialogFragment 并在 onCreateDialog 返回您的对话框,然后使用特定标记显示此对话框片段,之后,您可以使用 <代码>activity.getFragmentManager().findFragmentByTag("标签")。

不要保留对对话框(本地或全局)的引用,因为活动可以重新创建,并且会泄漏内存中的引用,只需使用 findFragment 方法获取引用即可。

如果您位于 Fragment 中,则可以使用 fragment.getChildFragmentManager(...) 并执行相同的操作。
祝你好运!

You should create a class and extend DialogFragment and in onCreateDialogreturn your dialog, then show this dialog fragment with a specific tag , after that , you can find this dialog by using activity.getFragmentManager().findFragmentByTag("the tag").

Don't hold a reference to your dialog (local or global) because the activity can get recreated and it will leak the reference in the memory, just get the reference with the findFragment method.

If you are in a fragment , you can use fragment.getChildFragmentManager(...) and do the same.
Good luck!

思慕 2024-12-12 12:53:33

当另一个 Activity 打开时,您当前的 Activity 将进入 onPause() 状态。有关它的更多信息可以在此处找到。

在 onPause() 中调用dialog.dismiss(),你应该被设置。

When another activity opens, your current activity will go through the onPause() state. More info on it can be found here.

In the onPause() call dialog.dismiss() and you should be set.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文