首页 > 解决方案 > EditText 完成后软键盘再次打开

问题描述

所以我有custom alert dialog一个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;
       }
});

那么为什么直接按下按钮时它会起作用但按钮本身不起作用呢?这对我来说很奇怪..有人知道到底发生了什么吗?:(

标签: javaandroid

解决方案


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

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

推荐阅读