This question already has answers here:
Android EditText delete(backspace) key event

(18个回答)


已关闭6年。




我正在使用TextWatcher,但无法在TextWatcher.afterTextChange事件中检测到Backspace键。我还想在textView事件中的某些情况下清除textWatcher
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    // I want to detect backspace key here
}

最佳答案

KeyListener可以满足您的两个条件。

mEditText.setOnKeyListener(new OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
           if(keyCode == KeyEvent.KEYCODE_DEL){
             //on backspace
             }
    return false
        }
});

同样,在onKey()内部,当您想清除textView时,可以放置多个检查语句以检查条件。

编辑:由于@RankoR足以指出,请记住 onKeyListener()仅适用于硬件键盘而不适用于软键盘。

10-07 23:07