안드 공부를 해볼까?

[Android] EditText의 키보드 Action 정하기 본문

안드로이드/학습

[Android] EditText의 키보드 Action 정하기

문바리 2022. 5. 26. 02:27
728x90

1. 개요

사이드 프로젝트를 같이 하는 형이 검색을 어떻게 할까? 라는 질문에 답은 바로 했지만
내가 구현할려고 하니 막상 막막했다. 

그래서 이번에도 기억하기 위해 정리해 본다.

2. 본문

구현은 생각보다 간단하다. 기존 EditText에서 2줄만 추가해주자.

    <EditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:imeOptions="actionSearch"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

iemOptions = "actionSearch" 이 코드가 키보드 입력창을 검색으로 만들 것 인지 정해준다.

actionSearch 외에도 많이 사용할 수 있으니 나중에 시간되면 찾아보자.

주의할 점은 inputType을 반드시 정의하자. 정의하지 않으면 위의 그림처럼 iemOptions가 작동되지 않는다. 

2개다 반드시 정의를 해주고 사용하자.

 

2-1. 검색 버튼 감지하는 방법

이제 검색버튼을 생성했으니 검색을 눌렀을 때 이벤트를 구현해보자.

        binding.edit.setOnEditorActionListener { textView, actionId, _ ->
            var check = false
            if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                Toast.makeText(this, "검색 됨 ${textView.text}", Toast.LENGTH_SHORT).show()
                check = true
            }
            check
        }

viewBinding이기 때문에 위와 같이 구현했다.

만약 viewBinding이 없다면 findViewById로 가져와 이벤트 리스너를 등록하자.

 

textView는 EditText의 텍스트가 되고 actionId가 현재 EditText의 파란색 버튼 종류가 된다.

우리는 이미 검색인 actionSearch로 달았기 때문에 위와 같이 구현했다.

검색을 누르면 EditText의 텍스트가 잘 표현되고있다.

3. 마무리

매일 정리할때마다 옛날에 했던건데..! 싶은게 되게 많다.

어렵지도 않은데 이 정도는 기억하자.. 이제 2년을 배웠는데..

반응형
Comments