当前位置:   article > 正文

完美解决editText监听键盘回车会执行两次的解决方法_edittext 监听了两次

edittext 监听了两次

      对于开发中有时可能会监听键盘的回车按键,但是在网上找了一种方法是

  1. private OnKeyListener onKey = new OnKeyListener() {
  2. @Override
  3. public boolean onKey(View v, int keyCode, KeyEvent event) {
  4. if (keyCode == KeyEvent.KEYCODE_ENTER) {
  5. login();
  6. }
  7. return false;
  8. }
  9. };
edtTxtPassword.setOnKeyListener(onKey);
       会发现执行了两次,当然原因很简单,引文onkey事件包含了down和up事件,所以只需要加入一个判断即可。

具体代码如下:

  1. private OnKeyListener onKey = new OnKeyListener() {
  2. @Override
  3. public boolean onKey(View v, int keyCode, KeyEvent event) {
  4. if (keyCode == KeyEvent.KEYCODE_ENTER
  5. <span style="color:#ff0000;"> && event.getAction() == KeyEvent.ACTION_UP</span>) {
  6. myLogin();
  7. }
  8. return false;
  9. }
  10. };

      至此完美解决。当然还有一种监听setOnEditorActionListener也是同样的原理。

也可以修改editText的回车样式,即是把EditText的ImeOptions属性设置成不同的值,Enter键上就会显示不同的文字或图案

actionNone : 回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 一个放大镜
actionSend : Send
actionNext : Next
actionDone : Done,隐藏软键盘,即使不是最后一个文本输入框



声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号