使用Edittext时,软键盘执行两次

当使用Edittext时,没有发送图标,修改软键盘的回车键为发送:

布局里面设置android:imeOptions="actionSend",android:singleLine="true";

发现,点击发送后,会回到全英文键盘,代码设置隐藏代码无效,点两次后才消失,后来发现是:

由于点击一次回车键,KeyEvent.ACTION_DOWN和KeyEvent.ACTION_UP都触发了View.OnKeyListener(),所以要加上event.getAction() == KeyEvent.ACTION_DOWN。

mEdtComment.setOnKeyListener(new View.OnKeyListener() {

@Override

    public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {

if (keyCode == KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == KeyEvent.ACTION_DOWN) {

InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

              if (imm.isActive(view)) {

imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);

              }

return true;

          }

return false;

                }

});

你可能感兴趣的:(使用Edittext时,软键盘执行两次)