【发布时间】:2013-05-22 21:32:23
【问题描述】:
我想在 Activity 上显示一个对话框,但仍想在显示对话框时与后台 Activity 交互以执行某些操作。如何做到这一点?
【问题讨论】:
标签: android android-activity dialog
我想在 Activity 上显示一个对话框,但仍想在显示对话框时与后台 Activity 交互以执行某些操作。如何做到这一点?
【问题讨论】:
标签: android android-activity dialog
您可以创建一个新的Thread 来执行此操作。我推荐的是实现AsyncTask
这是一个 great tutorial 来实现这些东西。
【讨论】:
使用DialogFragment,这是一个显示对话窗口的片段,浮动在其活动窗口的顶部。该片段包含一个 Dialog 对象,它会根据片段的状态适当地显示该对象。对话框的控制(决定何时显示、隐藏、关闭它)应通过此处的 API 完成,而不是直接调用对话框,因此您的 Activity 仍处于控制之中。
【讨论】:
Dialog 仍然是同一 Activity 的一部分。他们只是使用不同的窗口。
由于您还没有发布任何代码,我理论上会回答您,在构建您Dialog 时,您应该保留对持有它的Activity 的引用。这样你仍然可以与之通信。
【讨论】:
我为这个问题找到了一个非常巧妙的解决方法。如果您在所有内容之上放置一个透明视图,您可以实现回调以将事件注入底层视图,但它不一定是事件,它可以是您想要在背景视图上执行的任何代码。我有一个开源库来演示这一点。如果你查看我的仓库:https://bitbucket.org/warwick/hgdialrepo,你会发现这个库带有一个演示应用程序。在此演示应用程序中,您将找到一个 cog 演示。如果您检查 cog 演示背后的代码,您会发现这是如何实现的。
【讨论】: