如何在Android上使用TextWatcher处理输入密钥

mrk*_*khv 10 android keylistener textwatcher android-edittext

我在Android上工作.以前我曾经onKeyListener处理过关键事件的具体行动.

但是,这种方式似乎不能解决我的问题,因为一旦我实现了我的监听器,几乎所有的密钥都会被禁用EditText.在SO阅读一些话题之后,我知道我应该使用TextWatcher代替,但我仍然不知道如何处理ENTER内部,因为参数提供了关键的事件,只有CharSequence,Editable等我没有找到任何keyCode参数.

小智 18

试试这个

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    if (s.length()>0 && s.subSequence(s.length()-1, s.length()).toString().equalsIgnoreCase("\n")) {
        //enter pressed
    }
}
Run Code Online (Sandbox Code Playgroud)


Moh*_*eem 6

试试这个

protected View.OnKeyListener onEnter = new View.OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if ((event.getAction() == KeyEvent.ACTION_DOWN)
                && (keyCode == KeyEvent.KEYCODE_ENTER)) {
            //here do what you want
        }
        return false; // very important
    }
};
Run Code Online (Sandbox Code Playgroud)

  • 根据doc:_Called将硬件密钥分派到视图时._ (3认同)
  • 正如Divers所说,KeyListener实际上会监听硬件密钥(卷,主页等). (2认同)