java - 编辑文本完成后软键盘再次打开

标签 java android

<分区>

所以我有一个带有EditText自定义警报对话框。每当我点击一个按钮进行确认,或者如果我点击软键盘自己的完成按钮,我已经对应用程序进行了编程以关闭对话框。然而,由于某些奇怪的原因,soft-keyboard 在警告对话框关闭后仍然打开...

buttonConfirm 末尾的这段代码是我试图解决这个问题的。出于某种原因,代码不适用于按钮本身,但代码确实适用于软键盘中的完成按钮

buttonConfirm.setOnClickListener(new 

    View.OnClickListener()
    {..............
    .................
         closeKeyboard();
         Handler handler = new Handler();
         handler.postDelayed(new Runnable() {

         @Override
         public void run() {
             dialog.dismiss();

         }

     }, 100); // 5000ms delay


}

//This is the code for the done-button in the `soft keyboard`

textinputEdit.setOnEditorActionListener(new OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event){
         if(actionId==EditorInfo.IME_ACTION_DONE){
              buttonConfirm.performClick();
         }
         return false;
       }
});

那么为什么当直接按下它时它起作用但按钮本身不起作用?这对我来说很奇怪.. 任何人都知道这到底是怎么回事? :(

最佳答案

点击完成按钮,调用hideSoftInputFromWindow方法-

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);

关于java - 编辑文本完成后软键盘再次打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56807691/

相关文章:

android - 如何在 MPAndroidChart 中设置 xAxis 的字符串值?

java - RowHeader 样式的表格,对 rowHeader 和数据进行排序

java - 如何将多个对象结果写入 Java 中的一个输出文本文件?

android - 找不到 com.android.tools.build :gradle:4. 0.1(或任何版本)

java - Android Studio 上 AndAR(r205) 示例代码 "nmatsui/AR_Speeker"的奇怪行为

android - 使用 Activity 在 Android 中动态创建 ScrollView

android - 代号 GenericListCellRenderer 中的一个文本字段

java - 是否有替代播放器 "plugin or platform"来运行 java 应用程序而不是 java-applet 平台?

java - 使用 EclipseLink 将行插入到具有唯一标识符列的表中

java - 如何从actionEvent监听器通知主线程