Search code examples
androidtextviewkeylistenerkeyevent

How to detect character key presses?


I know how to listen for when the ENTER button is pressed in a TextView, as shown in the code below:

textView.setOnKeyListener(new View.OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
            if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                enterPressed();
                return true;
            }
            return false;
        }
});

However... how do I listen for when a character key (A-Z, 0-9, special characters, etc.), basically everything else other than ENTER, BACKSPACE, or SPACE, are pressed? I want to do this because I want a button to become enabled when the user has started typing text into a TextView. Strangely, the onKey() method isn't even called when these character keys are pressed, so is there another way I'm suppose to listen for them? Thanks in advance!


Solution

  • Text watcher might help you

    textView.addTextChangedListener(new TextWatcher(){
    
        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
    
        }
    
    });