Study Record

EditText 속성 - action 버튼 누르면 키보드 내리기, 이벤트 연결하기 본문

안드로이드

EditText 속성 - action 버튼 누르면 키보드 내리기, 이벤트 연결하기

초코초코초코 2022. 4. 9. 18:02
728x90

action 버튼 누르면 키보드 내리기

android:imeOptions 속성에 "actionDone" 을 설정한다.

<EditText
    android:id="@+id/addressBar"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:importantForAutofill="no"
    android:inputType="textUri"
    android:imeOptions="actionDone"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/goBackButton"
    app:layout_constraintStart_toEndOf="@+id/goHomeButton"
    app:layout_constraintTop_toTopOf="parent"
    tools:ignore="LabelFor" />

 

+ (EditText) 한번 포커스가 나갔다가 다시 잡혔을 때 자동 전체 선택 옵션

android:selectAllOnFocus="true"

 

class 파일에서 actionDone 한 상태에 대한 이벤트 연결하기

private val addressBar: EditText by lazy {
        findViewById(R.id.addressBar)
}

addressBar.setOnEditorActionListener { v, actionId, event -> 
    if(actionId == EditorInfo.IME_ACTION_DONE){
        // action버튼 눌렀을 경우 실행된다.
        webView.loadUrl(v.text.toString())
    }
    
    return@setOnEditorActionListener false
}

setOnEditorActionListener 에서는 반환값(Boolean)을 받는데 여기서 true를 반환하면 다른 쪽에서 handling하지 않아도 된다는 의미가 되기 때문에 android:imeOptions="actionDone" 속성을 설정한 것이 실행하지 않게 되므로 false를 해줘야 한다.

728x90