【问题标题】:Can we interact with background activity when displaying a dialog over it in android在android中显示对话框时我们可以与后台活动交互吗
【发布时间】:2013-05-22 21:32:23
【问题描述】:

我想在 Activity 上显示一个对话框,但仍想在显示对话框时与后台 Activity 交互以执行某些操作。如何做到这一点?

【问题讨论】:

标签: android android-activity dialog


【解决方案1】:

您可以创建一个新的Thread 来执行此操作。我推荐的是实现AsyncTask

这是一个 great tutorial 来实现这些东西。

【讨论】:

    【解决方案2】:

    使用DialogFragment,这是一个显示对话窗口的片段,浮动在其活动窗口的顶部。该片段包含一个 Dialog 对象,它会根据片段的状态适当地显示该对象。对话框的控制(决定何时显示、隐藏、关闭它)应通过此处的 API 完成,而不是直接调用对话框,因此您的 Activity 仍处于控制之中。

    【讨论】:

    • 嗨 dtmilano,当对话框片段正在显示时,我们仍然可以与主机活动交互吗?我的意思是,如果我在显示对话框的活动上有一个按钮,我可以在不关闭对话框的情况下单击按钮吗?
    • 那么,也许您需要将片段呈现为嵌入的 (developer.android.com/reference/android/app/…)
    【解决方案3】:

    Dialog 仍然是同一 Activity 的一部分。他们只是使用不同的窗口。
    由于您还没有发布任何代码,我理论上会回答您,在构建您Dialog 时,您应该保留对持有它的Activity 的引用。这样你仍然可以与之通信。

    【讨论】:

      【解决方案4】:

      我为这个问题找到了一个非常巧妙的解决方法。如果您在所有内容之上放置一个透明视图,您可以实现回调以将事件注入底层视图,但它不一定是事件,它可以是您想要在背景视图上执行的任何代码。我有一个开源库来演示这一点。如果你查看我的仓库:https://bitbucket.org/warwick/hgdialrepo,你会发现这个库带有一个演示应用程序。在此演示应用程序中,您将找到一个 cog 演示。如果您检查 cog 演示背后的代码,您会发现这是如何实现的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多