当我按下 Android Activity 中的一个按钮时,我的两个警报对话框都会显示

Both of my alert dialogs are showing when I press a button for one in my Android Activity

我有一个带有菜单充气器的 activity。有两个项目,每个项目都应该打开自己的对话框。但是,当我按下一个时,两个对话框都会在彼此之上打开。

根据按下的按钮,使用以下两个 类 之一。这是菜单中的执行行 switch/case

case R.id.action_vote:
            VoteDialog.voteDialogShow(this);            

        case R.id.action_admin:
            AdminDialog.adminDialogShow(this);

这是两个对话框类..为了便于阅读,我删除了一些代码。

public class AdminDialog {

    public static void adminDialogShow(final Context context){

        final AlertDialog.Builder adminAlert = new AlertDialog.Builder(context);

        adminAlert.setTitle("Restricted Area!");
        adminAlert.setMessage("Enter Access Code:");

        adminAlert.setView(input);
        //....
        //Setup text and buttons......
        //....
        adminAlert.show();
    }
}

public class VoteDialog {

    public static void voteDialogShow(final Context context){

        final AlertDialog.Builder voteAlert = new AlertDialog.Builder(context);

        //....
        //Setup text and buttons......
        //....

        voteAlert.setView(input);

        //....

        voteAlert.show();
    }
}

更改为:

case R.id.action_vote:
    VoteDialog.voteDialogShow(this);    
    break;        

case R.id.action_admin:
    AdminDialog.adminDialogShow(this);
    break;

正如 Mike M. 所指出的,您在 switch 中缺少每个案例的 break; 以标记其效果结束的位置。更多详情请见 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html