Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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
Java 对话框关闭时,默认键盘是否仍然可见?_Java_Android_Dialog - Fatal编程技术网

Java 对话框关闭时,默认键盘是否仍然可见?

Java 对话框关闭时,默认键盘是否仍然可见?,java,android,dialog,Java,Android,Dialog,问题 我想使用OTP验证更改手机号码。我在用户配置文件屏幕上有一个更改按钮。单击“更改”按钮时,我打开了一个对话框。一旦对话框打开,用户输入新的联系人号码并按下对话框的“重新发送otp”按钮,对话框将关闭,键盘也应隐藏。但是,键盘并没有隐藏。更改后的一件事是取消“否”对话框。一旦用户输入OTP并再次按下“提交”按钮,我将再显示一个“输入OTP”对话框。同样的问题是键盘没有隐藏 这里是我尝试过的 编辑对话框上的文本 <android.support.design.widget

问题

我想使用OTP验证更改手机号码。我在用户配置文件屏幕上有一个更改按钮。单击“更改”按钮时,我打开了一个对话框。一旦对话框打开,用户输入新的联系人号码并按下对话框的“重新发送otp”按钮,对话框将关闭,键盘也应隐藏。但是,键盘并没有隐藏。更改后的一件事是取消“否”对话框。一旦用户输入OTP并再次按下“提交”按钮,我将再显示一个“输入OTP”对话框。同样的问题是键盘没有隐藏

这里是我尝试过的

编辑对话框上的文本

        <android.support.design.widget.TextInputLayout
            android:layout_marginTop="36dp"
            android:theme="@style/TextLabel"
            android:id="@+id/no_layout"
            android:layout_marginLeft="24dp"
            android:layout_marginRight="24dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <EditText
                android:paddingLeft="8dp"
                android:id="@+id/dialog_box_mobile"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:inputType="number"
                android:imeOptions="actionDone"
                android:singleLine="true"
                android:textColorHint="@color/navigation_header"
                android:hint="@string/mobno"
                android:textSize="@dimen/sisteen"
                android:maxLength="10"/>

        </android.support.design.widget.TextInputLayout>
将此添加到MainiTest和每个活动布局中

 android:windowSoftInputMode="stateHidden"
请查看屏幕截图

 android:windowSoftInputMode="stateHidden"

试试这个:

        public static void hideKeyboard(EditText edt) {
            InputMethodManager imm = (InputMethodManager) 
                 edt.getContext().getSystemService(Activity.INPUT_METHOD_SERVICE);              
            imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
        }
同时添加以下内容:

           dialogBox.setOnDismissListener(new DialogInterface.OnDismissListener() {
        @Override
        public void onDismiss(DialogInterface dialogInterface) {
                   hideKeyBoard(editText);
            dialogBox.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

        }
    });
android:WindowsOfInputMode=“StateAllwayShidden”查看此链接:
           dialogBox.setOnDismissListener(new DialogInterface.OnDismissListener() {
        @Override
        public void onDismiss(DialogInterface dialogInterface) {
                   hideKeyBoard(editText);
            dialogBox.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

        }
    });