[kotlin] 확장 함수를 사용하여 키보드 입력을 처리하는 방법은?

아래는 Kotlin으로 작성된 예시 코드입니다. 이 코드는 EditText라는 안드로이드 위젯에 대해 키보드 입력을 처리하는 기능을 추가하기 위해 EditText 클래스에 확장 함수인 handleKeyboardInput을 정의하는 방법을 보여줍니다.

fun EditText.handleKeyboardInput() {
    this.setOnKeyListener { _, keyCode, event ->
        if (event.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
            // 키보드 입력 처리 로직을 여기에 추가
            // 예: 입력 내용을 가져오고 처리하는 등의 작업 수행
            // 여기에 작업 수행 후 true를 반환하여 이벤트 소비를 표시
            // 원하는 동작에 맞게 수정
            true
        } else {
            false
        }
    }
}

위의 코드에서, EditText 클래스에 handleKeyboardInput이라는 새로운 메서드를 추가했습니다. 이 메서드는 EditText 위젯에서 키보드 입력을 처리하기 위한 로직을 정의합니다. 이제 어떤 EditText 인스턴스에서든 handleKeyboardInput 메서드를 호출하여 키보드 입력 처리를 간편하게 할 수 있습니다.

이러한 방식으로 확장 함수를 사용하면 기존 클래스에 새로운 기능을 추가하거나 클래스를 확장하여 새로운 동작을 정의할 수 있습니다.

참고 문헌: