android - 对话框在是按钮上关闭

标签 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;
    }
}

感谢帮助

最佳答案

您需要为 case R.id.btn_yes 添加 break 语句。根据docs :

The break statements are necessary because without them, statements in switch blocks fall through: All statements after the matching case label are executed in sequence, regardless of the expression of subsequent case labels, until a break statement is encountered

在您的情况下,单击 ID 为 btn_yes 的按钮,然后执行 ifelse 中的代码块,然后程序流程继续在 case R.id.btn_no 中执行代码,因为在匹配的 case 中它没有被 break 停止。

@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);
            }
            break; // add this
        case R.id.btn_no:
            dismiss();
            break;
    }
}

关于android - 对话框在是按钮上关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54850045/

相关文章:

reactjs - 无法读取 t.isMuiElement 处未定义的属性 'muiName'?

Javascript帮助,可以使用jQuery

android - 如何在应用购买中测试 Google Play?

java - Android:在自定义 View 中启用滚动条

某一特定选项卡上的 jQuery Tab 自定义事件

c++ - 如何在 Windows 中更改 OPENFILENAME 对话框的位置?

javascript - 在javascript确认对话框中更改标题和选项

android - 发送 APK 文件 android

Android 相机 Intent 结果代码有时是错误的/Sony Xperia Z

Android线程等待直到可见