如何防止对话框打开两次

And*_*Dev 6 android

我在我的应用程序中有按钮,在我的按钮上双击我打开一个对话框.有时当我快速双击按钮然后对话框打开两次时会发生什么,因此用户必须取消对话两次.

所以任何人都可以建议我如何防止这个对话框在我的按钮的双击上打开两次.

Vla*_*mir 9

为你的对话框创建一个字段,比如

private Dialog m_dialog = null;
Run Code Online (Sandbox Code Playgroud)

并在你的onClick监听器中检查它的状态:

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

编辑 顺便说一句,如果你不需要每次分隔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();
}
Run Code Online (Sandbox Code Playgroud)


Cap*_*nch 7

目前的方法应该是使用DialogFragment。这样,如果您只使用标签并在带有标签的片段已经存在时跳过加载,则不需要额外的代码逻辑:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
Fragment prev = getSupportFragmentManager().findFragmentByTag("TAG_DIALOG");
        if (prev == null) {
            ft.addToBackStack(null);
            // Create and show the dialog.
            DialogFragment newFragment = ImageDialog.newInstance(b);
            newFragment.show(ft, "TAG_DIALOG");
        }
Run Code Online (Sandbox Code Playgroud)


Uda*_*ran 6

也许这会对您有所帮助:

取一个计数变量,即count=0;。在按钮中单击验证条件,以便if(count==0)显示对话框并使计数为 1。(此对话框不会第二次打开),同时关闭对话框使计数再次为 0。

我认为这会起作用

希望能帮助到你。