【发布时间】:2020-10-28 12:24:29
【问题描述】:
我想识别在 Android 中按下了键盘上的哪个键。我已经搜索了很多,但我还没有达到正确的答案。 StackOverflow 中的一些帖子我看过但他们没有回答我在这里:
How to listen the keypress in the soft keyboard?
【问题讨论】:
我想识别在 Android 中按下了键盘上的哪个键。我已经搜索了很多,但我还没有达到正确的答案。 StackOverflow 中的一些帖子我看过但他们没有回答我在这里:
How to listen the keypress in the soft keyboard?
【问题讨论】:
您可以使用Android提供的TextWatcher api。
这里是来自answer 之一的代码 sn-p:
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;
}});
【讨论】: