当我按下 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
我有一个带有菜单充气器的 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