Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在TextWatcher中关闭AlertDialog_Android_Android Alertdialog - Fatal编程技术网

Android 如何在TextWatcher中关闭AlertDialog

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正确时,您才关闭对话框,

我有一个ALertDialog,允许用户输入pin码。。TextWatcher检查pin的长度,然后在EditText中的文本长度与store pin的长度匹配时检查pin是否正确。当pin尝试成功时,我尝试关闭/取消对话框。 我已经尝试过对话;和dialog.cancel;但两者都不起作用

因此,为了清楚起见,我试图取消if/else中“else”部分的AlertDialog。谢谢你的关注

代码:

}您必须在正确的位置使用dialog.Disclose。只有当用户pin正确时,您才关闭对话框,但当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
    }


}