我是Android的初学者。有没有人有关于如何在EditText / TextView中监听键和软键的理智的解释?
我希望看到一个全面的教程或一组示例。
据我了解,我可以将KeyListener添加到我的Activity中,例如onKeyDown(),onKeyUp()但是当我尝试这个时,我无法触发正常键的事件,例如HOME和BACK。
我已经看到过使用TextWatcher,但这与处理原始键事件不同。
在SO上似乎有一些半解决方案。希望你能帮助清除混乱的迷雾...
答案 0 :(得分:2)
您必须将键侦听器分配给活动,而不是分配给EditText本身。
答案 1 :(得分:2)
这是我必须听BACK或MENU键事件。只需添加此方法,无需实现任何接口。我在我的BaseActivity中执行此操作,每个Activity都从该BaseActivity继承。
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d(NAME, "Key pressed");
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
Log.d(NAME, "Back pressed");
// IGNORE back key!!
return true;
/* Muestra el Menú de Opciones */
case KeyEvent.KEYCODE_MENU:
Intent menu = new Intent(this, Menu.class);
// start activity
startActivity(menu);
return true;
}
return super.onKeyDown(keyCode, event);
}
PS:我强烈反对忽略后退键。
答案 2 :(得分:1)
例如:
myEditText.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER){
//your code here
}
return false;
}
});