Android 如何在TextWatcher中关闭AlertDialog
我有一个ALertDialog,允许用户输入pin码。。TextWatcher检查pin的长度,然后在EditText中的文本长度与store pin的长度匹配时检查pin是否正确。当pin尝试成功时,我尝试关闭/取消对话框。 我已经尝试过对话;和dialog.cancel;但两者都不起作用 因此,为了清楚起见,我试图取消if/else中“else”部分的AlertDialog。谢谢你的关注 代码: }您必须在正确的位置使用dialog.Disclose。只有当用户pin正确时,您才关闭对话框,但当pin尝试成功时,您不会关闭对话框。 按以下方式更改代码:Android 如何在TextWatcher中关闭AlertDialog,android,android-alertdialog,Android,Android Alertdialog,我有一个ALertDialog,允许用户输入pin码。。TextWatcher检查pin的长度,然后在EditText中的文本长度与store pin的长度匹配时检查pin是否正确。当pin尝试成功时,我尝试关闭/取消对话框。 我已经尝试过对话;和dialog.cancel;但两者都不起作用 因此,为了清楚起见,我试图取消if/else中“else”部分的AlertDialog。谢谢你的关注 代码: }您必须在正确的位置使用dialog.Disclose。只有当用户pin正确时,您才关闭对话框,
@Override
public void afterTextChanged(Editable s) {
m_Text = input.getText().toString();
if (m_Text.length() == details.get(2).length()) {
if (!input.getText().toString().equals(details.get(2))) {
Toast.makeText(MainActivity.mainActivity, "Incorrect pin entered!", Toast.LENGTH_SHORT).show();
Log.d("eLOQ", "User pin is not correct");
input.setText("");
} else if (input.getText().toString().equals(details.get(2))) {
controller.startStageTwo();
Log.d("eLOQ", "User pin is correct");
}
dialog.dismiss(); // dismiss your dialog here. Here your dialog will dismiss in both caases
}
}
祝您好运:在您当前的代码中,我看不到您的对话框变量所指的任何内容。你在别的地方定义过它吗?是的,它在类的顶部声明。如下所示:AlertDialog.Builder;你说的是建筑商声明。我问的是dialog声明dialog.Disclose;。您在哪里从该行定义了对话框?我不认为AlertDialog.Builder有一个名为hide的方法
dialog.hide(); or dialog.cancel();
@Override
public void afterTextChanged(Editable s) {
m_Text = input.getText().toString();
if (m_Text.length() == details.get(2).length()) {
if (!input.getText().toString().equals(details.get(2))) {
Toast.makeText(MainActivity.mainActivity, "Incorrect pin entered!", Toast.LENGTH_SHORT).show();
Log.d("eLOQ", "User pin is not correct");
input.setText("");
} else if (input.getText().toString().equals(details.get(2))) {
controller.startStageTwo();
Log.d("eLOQ", "User pin is correct");
}
dialog.dismiss(); // dismiss your dialog here. Here your dialog will dismiss in both caases
}
}