我在EditText&上应用了OnKeyListener();它不适用于三星Galaxy S3,但适用于所有其他手机...... 不知道我做错了什么......
et = (EditText) findViewById(R.id.editText1);
et.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View arg0, int keyCode, KeyEvent arg2) {
// TODO Auto-generated method stub
// You can identify which key pressed buy checking keyCode value
// with KeyEvent.KEYCODE_
if (keyCode == KeyEvent.KEYCODE_DEL) {
// this is for backspace
Log.d("Button Event", "BackSpace Pressed");
if (et.getSelectionStart() < length + 1) {
return true;
} else {
return false;
}
}
return false;
}
});
答案 0 :(得分:6)
您可以尝试使用et.addTextChangedListener(new TextWatcher()..)并将所有逻辑移动到它的afterTextChanged(...)回调。
仅使用来自硬件键盘的事件调用OnKeyListener(),如View.OnKeyListener's description所述。