首页 > 解决方案 > Android是否有键盘监听器来检测按下哪个键?

问题描述

我想识别在 Android 中按下了键盘上的哪个键。我已经搜索了很多,但我还没有达到正确的答案。StackOverflow 中的一些帖子我已经看过但他们没有回答我在这里:

如何听软键盘中的按键?

Android - 获取键盘按键

如何找到在android中按下了哪个键?

标签: androidkotlinkeyboard

解决方案


您可以使用 Android 提供的 TextWatcher api。

这是来自答案之一的代码片段:

field1.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start,
                                      int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start,
                                  int before, int count) {
            if (s.length() != 0)
                field2.setText("");
        }
    });

    field2.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start,
                                      int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start,
                                  int before, int count) {
            if (s.length() != 0)
                field1.setText("");
        }
    });

编辑 1

这是用于跟踪在键盘上按下了哪个键的模板:

editText.setOnKeyListener(new OnKeyListener() {                 
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    //You can identify which key pressed buy checking keyCode value with KeyEvent.KEYCODE_
    if(keyCode == KeyEvent.KEYCODE_DEL) {  
        //this is for backspace
    }else if(keyCode == KeyEvent.KEYCODE_BACK) {  
        //this is for backspace
    }
    return false;       
}});

推荐阅读