【发布时间】:2013-11-24 17:59:36
【问题描述】:
我的应用中有一个“edittext”,我想在软键盘上按下某些字符时执行一些操作。 我已经尝试了各种方式以及 stackOverflow 的建议方式,但是没有检测到字符,即 a/A、b/B 等。但是,Enter 和 Del 可以。 阅读负载后,显然我必须根据此处的示例覆盖edittext类,所以我已经这样做了。 我在这里覆盖了方法:
@Override
public boolean sendKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode() == KeyEvent.KEYCODE_A) {
ZanyEditText.this.setRandomBackgroundColor();
return false;
}
return super.sendKeyEvent(event);
}
我也尝试过覆盖标准的edittext onKeyListener:
txtSMS.setOnKeyListener(new View.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
Toast.makeText(getApplicationContext(), "Del was pressed", Toast.LENGTH_SHORT).show();
}
if (keyCode == KeyEvent.KEYCODE_A) {
// this is for backspace
Toast.makeText(getApplicationContext(), "A was pressed", Toast.LENGTH_SHORT).show();
}
return false;
}
然而,在这两种情况下,Del 上都曾被检测到。为什么我无法检测字母表的字符?它们出现在文本框中...
谢谢
【问题讨论】:
标签: android android-edittext character detect onkeypress