0

设置如下:我有一个页面,我们将其称为 A,其中包含一个按钮,我们将其称为 B。当用户单击 B 时,将打开一个对话框 (C)。C一旦创建就对A或B一无所知。

现在,如果用户双击 B,则会创建 2 个或更多 C,这是不可取的。由于 C 对 B 一无所知,我无法禁用该按钮,因为如果用户在 C 中按下取消,他们将返回 A 但 B 仍将被禁用。我也无法保存页面 ID 并限制 C 以这种方式创建,因为如果用户确实打开 C,单击取消但随后决定再次打开 C,他们必须能够这样做。

无论连续点击多少次,如何阻止按钮打开多个对话框?

编辑
我在上面的描述中简化了太多,所以这里有一个更深入的了解。我的Toolbar班级有一个名为 的按钮reference。单击时reference,会在一个完全独立的类上调用一个函数,该类ItemPicker会创建并显示CreateConversation对话框。所以,回到我原来的场景,B 对 C 一无所知。我意识到这很复杂,但目前我无法改变。

不知何故,我需要停止reference第二次调用,ItemPicker.createAndShow()如果它被点击了不止一次并且CreateConversation已经打开了一个对话框。ItemPicker此外,类中没有特定的实例ToolbarcreateAndShow()是一种静态方法。

4

2 回答 2

1

C 不知道 B,但 B 知道 C:处理它并调用show(). 如果 C 已经显示,则为空操作,如果已关闭(或尚未打开),则显示。

于 2012-05-26T00:07:50.087 回答
0

大概 A 引用了 C。

在C 中单击Cancel时,调用C.hide(). 现在在您的ClickHandlerfor B 中,您可以检查C.isShowing()并启用/禁用创建对话框,或使用C.show().

当在 C 中单击Cancel时,除了调用之外,hide()您还可以重新初始化 C 并保留它以供下一次 B 单击。

于 2012-05-25T22:54:53.320 回答