Android是否具有键盘侦听器来检测按下了哪个键?

时间:2020-07-08 06:38:00

标签: android kotlin keyboard

我想知道在Android中按下了键盘上的哪个键。我进行了很多搜索,但还没有找到正确的答案。我在其中看到了StackOverflow中的一些帖子,但他们没有回答我:

How to listen the keypress in the soft keyboard?

Android - Get keyboard key press

how to find which key is pressed in android?

1 个答案:

答案 0 :(得分:0)

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

这里是answer之一的代码段:

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;       
}});