打开对话框或第二个对话框实例时的Android块屏幕

时间:2014-05-19 08:40:20

标签: android android-fragments dialog

我有一个扩展的DialogFragment,它从当前的Fragment打开。 最近我发现可以点击导致对话框在短时间内打开两次的元素,它将强制打开两个对话框,一个在另一个上面。这是我的应用程序的意外行为。我想只打开一个对话框实例。我做错了什么?

下面是我打开对话框的代码。

public boolean onActionItemSelected(int menuId) {

    switch (menuId) {
        case R.id.action_change_passcode:
            pinChangeFlag = true;
            AbstractPinDialog pinChangeFirstDialog = new StandardPinDialog(this);
            pinChangeFirstDialog.show(getFragmentManager(), StandardPinDialog.class.getName());
            return true;
            //... other cases
    } 
}

1 个答案:

答案 0 :(得分:0)

一种简单的方法是设置一个像

这样的全局布尔标记
isDialogVisible=false;

显示对话框时,将其值设置为true。在显示该对话框之前检查

if(! isDialogVisible){
    dialog.show();
}

因此只会出现一个对话框。

或者第二种方法是检查是否已创建对话框的视图,然后使用类似的逻辑不显示第二个对话框。

相关问题