[TIL] #42 Specify the input method action

Yeon·2023년 9월 19일
0

내일배움캠프 - Kotlin

목록 보기
55/58
post-thumbnail

앱을 사용하면서 지나쳤던 작은 요소!
바로 키보드의 InputMethodAction이다.
이미지 검색 앱을 만들어보면서 키보드의 엔터를 눌렀는데 검색이 안돼서 당황했었다. 사용할 때는 당연하다고 생각했던 것인데 따로 설정을 해줘야 한다!



1. imeOptions in XML

1) imeOptins?

  • EditTextTextView와 같은 텍스트 입력 위젯에 대한 속성 중 하나로, 키보드와 관련된 동작을 제어하는 데 사용
  • 사용자가 키보드를 통해 텍스트를 입력할 때 어떤 동작을 실행할지 지정할 수 있음
  • 물론 기능적인 부분은 kt 파일에서 설정해줘야 됨!

2) Type

  • actionSearch 검색 필드에서 Enter 키를 누를 때 검색 동작 실행
  • actionGo 텍스트 필드에서 Enter 키를 누를 때 특정 동작 실행 (ex. 로그인)
  • actionNext 다음 입력 필드로 포커스 이동
  • actionDone 텍스트 입력 완료
  • actionSend 입력된 텍스트 전송
  • actionNone 키보드 동작 지정 X

3) Example

  • 왼쪽은 imeOptions을 따로 설정하지 않았을 때의 키보드!
  • 오른쪽은 imeOptions을 actionSearch로 설정했을 때의 키보드!

이렇게 써서 각각의 형태에 맞게 기능이 실행되면 좋겠지만 따로 설정해줘야 함😢


2. Input Method Action

1) Input Method Action?

  • 사용자가 키보드에서 "Enter" 또는 "다음" 버튼을 눌렀을 때 실행되는 동작을 정의하는 메커니즘
  • 사용자 경험과 앱의 상호작용을 개선하는 데 중요함

2) Example

  • imeOptions을 actionSearch로 설정했을때 실행될 동작을 정의할 코드
searchEv.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_SEARCH) {
        val query = searchEv.text.toString().trim()
        if (query.isNotEmpty()) {
            // 검색 동작 처리 로직을 여기에 추가
            // ex. setSearch(query) 또는 검색 화면으로 이동하는 등의 동작을 수행
        }
        // 검색 버튼을 눌렀을 때 항상 true 반환
        return@setOnEditorActionListener true
    }
    return@setOnEditorActionListener false
}



[참고 사이트]

'입력 방법 유형 지정', Developers

0개의 댓글