美文网首页
使用Edittext时,软键盘执行两次

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

作者: 木叶纷飞 | 来源:发表于2018-08-01 20:38 被阅读0次

当使用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时,软键盘执行两次

      本文链接:https://www.haomeiwen.com/subject/ymxdvftx.html