Welcome! Everything is fine.

[Android] 키보드 엔터키 클릭 시 중복된 값이 나올 때 본문

Android

[Android] 키보드 엔터키 클릭 시 중복된 값이 나올 때

개발곰발 2023. 8. 19.
728x90

검색 기능 구현 중, 키보드에서 엔터키를 누르면 검색 결과가 중복으로 출력되는 것을 발견했다. 그 이유를 찾아보니 키보드에서 엔터키를 누르면 ACTION_UPACTION_DOWN이 각각 실행되어 2번 실행된다는 것이다.

 

이를 해결하기 위해서는 아래와 같이 단순히 엔터키가 눌리는 하나의 조건이 아니라,

searchEditText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View view, int i, KeyEvent keyEvent) {
        if(keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
            // 실행할 코드
        }
        return false;
    }
});

이렇게 ACTION_UP이든 ACTION_DOWN이든 하나만 선택해서 조건을 달아주어야 한다.

searchEditText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View view, int i, KeyEvent keyEvent) {
        if(keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == KeyEvent.ACTION_UP) {
            // 실행할 코드
        }
        return false;
    }
});

그 결과, 키보드 엔터키로 검색으로 해도 중복으로 나오지 않고 정상적으로 출력되었다.