Android的EditText问题:KeyListener

Joe*_*oel 11 android keylistener android-edittext

在一个EditText组件上,我试图设置一个KeyListener以便捕获ENTER键(用于表单验证).

    text.setKeyListener(new KeyListener() {

        @Override
        public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
            return false;
        }

        @Override
        public boolean onKeyOther(View view, Editable text, KeyEvent event) {
            return false;
        }

        @Override
        public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER) {
                onKeyEnterPressedListener.onKeyEnterPressed(AKText.this);
                return true;
            } else {
                return false;
            }
        }

        @Override
        public int getInputType() {
            return 1;
        }

        @Override
        public void clearMetaKeyState(View view, Editable content, int states) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

问题是每当我键入EditText使用键盘时,所有键都被忽略,它忽略了我的击键.但是,仿真器设备上的软键盘正在工作.

如何解决这个问题?

cit*_*onn 30

我会改用TextWatcher类:

private TextWatcher tw = new TextWatcher() {
    public void afterTextChanged(Editable s){

    }
    public void  beforeTextChanged(CharSequence s, int start, int count, int after){
      // you can check for enter key here
    }
    public void  onTextChanged (CharSequence s, int start, int before,int count) {
    } 
};

EditText et = (EditText) findViewById(R.id.YOUR_EDITTEXT_ID);
et.addTextChangedListener(tw);
Run Code Online (Sandbox Code Playgroud)