2011-09-23 71 views
3

我在我的应用程序中的按钮,在我的按钮的doubleClick我打开对话框。有时当我双击快速按钮,然后对话框打开两次会发生什么情况,作为其结果用户必须两次取消对话框。如何防止对话框打开两次

所以任何人都可以建议我如何防止这个对话框打开我的按钮的doubleClick两次。

+0

为什么不单击而不是双击..... – Krishna

回答

2

可能,这将帮助你:

取一个计数变量,即count=0;。 在按钮单击验证条件,以便if(count==0)显示对话框并将计数设置为1.(此对话框将不会再次打开),同时解除对话框再次将计数设置为0。

我认为这将工作

希望它有帮助。

+0

计数被声明为本地或全局变量 – AndroidDev

+0

另一件事我的对话框双击按钮 – AndroidDev

+0

打开两次,但如果用户关闭对话框没有单击确定或取消按钮..只是觉得用户打开对话框,并单击后退按钮..在这种情况下,计数是1 ..然后对话框将永远不会出现 – AndroidDev

7

做出字段中输入对话框,像

private Dialog m_dialog = null; 

,并在您的onClick监听器检查它的状态:

if ((m_dialog == null) || !m_dialog.isShowing()){ 
    m_dialog = new Dialog(...); // initiate it the way you need 
    m_dialog.show(); 
} 

编辑 顺便说一句,如果你不需要初始化对话每次你可以分开if()这样的子句:

if (m_dialog == null){ 
    m_dialog = new Dialog(...); // initiate it the way you need 
    m_dialog.show(); 
} 
else if (!m_dialog.isShowing()){ 
    m_dialog.show(); 
} 
1

当按下Button时,使用Button.setEnabled(false)将其禁用。完成对话后,使用DialogInterface.OnDismissListener重新启用Button。这样你就不必持有对话框的全局引用。

0

我面临的最后2天,大量的命中和试验后,同样的问题,我在我的代码中发现一个小问题我没有解雇我在我的AsyncTask的onPostExecute()打开的对话框在AsyncTask Work之后做一些额外的工作。我打电话给myCustomDialog.dismiss(),一切正常。