在“是”按钮上关闭对话框

时间:2019-02-24 08:20:15

标签: android dialog

我正在使用从对话框扩展的类来更改密码。当我按“是”按钮时,对话框关闭。如果我输入错误,我希望对话框不会消失。

这是我的代码

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_yes:
            if ((!TextUtils.isEmpty(newpass.getText().toString())) && oldpass.getText().toString().equals(Login_Activity.e.getPassword())) {
                Login_Activity.e.password=newpass.getText().toString();
                user.child(Login_Activity.e.getId()).setValue(Login_Activity.e);
                dismiss();
            } else {
                yes.setBackgroundResource(R.color.red);
            }
        case R.id.btn_no:
            dismiss();
            break;
    }
}

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您需要为break添加case R.id.btn_yes语句。根据{{​​3}}:

  

break语句是必需的,因为没有它们,切换块中的语句会掉入:匹配case标签之后的所有语句都将按顺序执行,而不管后续case标签的表达如何,直到遇到break语句为止。

在您遇到的情况下,单击ID为btn_yes的按钮,然后执行ifelse中的代码块,然后程序流继续执行{{1}中的代码},因为它并没有因匹配大小写中断而停止。

case R.id.btn_no

答案 1 :(得分:0)

您可以根据对话框类手动覆盖自动关闭行为。

this question上的答案提供了几种方法来实现此目的,例如替换按钮的onClick侦听器,或者甚至在输入无效时动态禁用它。