在Android中使用Dialogs

时间:2012-03-29 21:08:00

标签: android eclipse android-activity dialog

我正在使用我为Android应用程序构建的一些自定义对话框类。当调用其中一个对话框类时,它会显示对话框,用户在对话框中对窗口小部件进行更改,然后这些更改会在对话框解除后影响调用活动。

我已经开发了一些工作来实现这个功能...但我喜欢整洁的代码,而且我玩过的所有工作对我来说都没有吸引力(静态变量,返回语句等) 。所以我想也许我可以在我的调用活动的OnResume或ReStart方法中放几个语句来完成必要的工作。但是当我解除对话框时没有任何反应,因此我不相信当对话框被解除时,会调用活动生命周期的任何OverRide方法(即使在对话框启动时首次出现OnPause)。

我查看了Andoid文档,并阅读了我可以在自定义对话框类中界面对话框并使用/覆盖各种方法。在我看来,这似乎就像是一个炮弹来杀死一只苍蝇(特别是因为我已经准备好了一个可以正常工作的工作)。

所以,基本上我想知道调用什么方法(从对话框或从启动对话框的活动)来重新启动调用对话框的活动。 < - 那句话对我来说没有意义......让我用图表描述(如果完全有必要,我可以给出伪代码;但我不知道这会有什么帮助)

调用Activity会创建对话框 - > (然后调用活动通过某种方法变灰) - >对话框显示 - >等等等等 - >对话框被驳回 - > (调用活动通过某种方法恢复)

括号中的上述两种方法,它们是什么? (后者与我的兴趣特别相关)谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

我不完全确定如何使背景变灰,但是你可以实现一些监听器并将相关代码放在那里,OnDismissListener,OnCancelListener和OnShowListener(需要API级别8)。

示例(其他侦听器的语法相同)

    Dialog d = new Dialog(this);
    d.setOnCancelListener(new DialogInterface.OnCancelListener() {

        @Override
        public void onCancel(DialogInterface dialog) {
            // do stuff 

        }
    });