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