我为Enter keyevent添加了setOnKeyListener。但是,在我添加setOnKeyListener之后,delete(退格)键无法正常工作。当我删除setOnKeyListener时,删除键工作正常。
如何修复删除键效果不错?
final EditText edittext = (EditText) findViewById(R.id.editText1);
edittext.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View arg0, int arg1, KeyEvent event) {
// TODO Auto-generated method stub
if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(edittext
.getApplicationWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
applySearch();
}
return true;
}
});
答案 0 :(得分:4)
如果您返回True
,则表示您正在处理所有密钥。试试这个:
if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
// something here
return true;
}
// otherwhise
return false;
答案 1 :(得分:3)
根据documentation onKey
返回True
,如果侦听器已经使用了该事件,否则返回false。在你的情况下:
@Override
public boolean onKey(View arg0, int arg1, KeyEvent event) {
...
return true; // Try to return false instead
}
当您的方法返回true
时,密钥未经处理且退格无效。