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

本文介绍如何在Android应用中正确监听EditText的回车键事件,并避免触发两次的问题。通过示例代码展示了如何使用onKey和setOnEditorActionListener方法,并介绍了如何设置EditText的回车样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 private OnKeyListener onKey = new OnKeyListener() {

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

具体代码如下:

   private OnKeyListener onKey = new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER
                   <span style="color:#ff0000;"> && event.getAction() == KeyEvent.ACTION_UP</span>) {
                myLogin();
            }
            return false;
        }
    };

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

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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值