android - Android是否有键盘监听器来检测按下哪个键?
问题描述
我想识别在 Android 中按下了键盘上的哪个键。我已经搜索了很多,但我还没有达到正确的答案。StackOverflow 中的一些帖子我已经看过但他们没有回答我在这里:
解决方案
您可以使用 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;
}});
推荐阅读
- c++ - 错误 C2446:“==”:没有从“int”转换为“int (__thiscall keyboard::*)(void)”
- php - 是否可以从另一个字段生成标签云?
- c# - 在打印时获取 xlxs 文档的页数
- sql - Hive join between two tables
- python - 硒刮板问题,indexError
- python - 为给定数据集找到函数的更好拟合常数参数
- pandas - pandas.tseries.offsets.DateOffset 中实现的 __add__ 方法在哪里?
- angular - Angular 项目中外部加载的 js 的 ngx-translate 的 Cors 问题
- c - 在Linux内核中将带有时间数据的字符串转换为rtc_time结构
- ios - UICompositionalLayout 未按预期工作(垂直表格滚动 + 水平分页)