본문 바로가기
공부기록/안드로이드

[안드로이드] setOnKeyListener 엔터(두 번 실행되는 경우)

by 책읽는 개발자 ami 2021. 1. 28.
728x90
반응형

엔터키 입력받을 때 액션을 취하고 싶은데 조건문에 keyCode==KeyEvent.KEYCODE_ENTER 만 쓰면 실행이 두 번 된다.

엔터키를 누르면 ACTION_UP과 ACTION_DOWN이 같이 실행된다. 따라서 한 번만 실행하기 위해선

keyCode==KeyEvent.KEYCODE_ENTER && event.getAction()==KeyEvent.ACTION_UP 이런식으로 조건을 하나 더 붙여줘야 한다.

commentEditText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if(keyCode==KeyEvent.KEYCODE_ENTER && event.getAction()==KeyEvent.ACTION_UP){
        	...
        }
    return true;
    }
});


728x90
반응형