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

时间:2016-03-10 23:47:50

标签: java android android-activity alertdialog

我有一个带菜单充气器的活动。有两个项目,每个项目都应该打开自己的对话框。但是当我按下一个时,两个对话框都会相互打开。

根据按下的按钮,使用以下两个类别中的一个。这是菜单开关/案例

中的执行行
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();
    }
}

1 个答案:

答案 0 :(得分:2)

更改为:

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

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

正如Mike M.所指出的那样,您在交换机中的每个案例中都错过了break;来标记其效果的结束位置。更多详情请见https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html