728x90
안녕하세요, 이번 포스팅에서는 키보드에서 완료 버튼을 누를 때, 액티비티의 원하는 버튼이 동시에 클릭되게 하는 기능을 만들어보겠습니다.
(코드는 안르도이드 sdk 28 버전 기준으로 작성되었습니다.)
포스팅에서 작성된 코드는 스틱코드에서 확인하실 수 있습니다.
[AOS][Kotlin] 키보드 완료 버튼 누를 때 버튼 클릭되게 하기 - Stickode
먼저, 레이아웃을 짜보겠습니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/edt_input"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:hint="Hello World!"
android:imeOptions="actionDone"
android:inputType="text" />
<Button
android:id="@+id/btn_done"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="확인" />
</androidx.appcompat.widget.LinearLayoutCompat>
EditText에서 imeOptions와 inputType 속성을 반드시 설정해주어야 합니다.
액티비티를 만들어보겠습니다.
package com.example.stickode
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.view.inputmethod.EditorInfo
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
class MainActivity : AppCompatActivity() {
val edtInput: EditText by lazy { findViewById(R.id.edt_input) }
val btnDone: Button by lazy { findViewById(R.id.btn_done) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
edtInput.setOnEditorActionListener(getEditorActionListener(btnDone)) // 키보드에서 done(완료) 클릭 시 , 원하는 뷰 클릭되게 하기
btnDone.setOnClickListener {
showToast("확인 버튼이 눌려졌습니다")
}
}
fun getEditorActionListener(view: View): TextView.OnEditorActionListener { // 키보드에서 done(완료) 클릭 시 , 원하는 뷰 클릭되게 하는 메소드
return TextView.OnEditorActionListener { textView, actionId, keyEvent ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
view.callOnClick()
}
false
}
}
fun showToast(message: String) {
Toast.makeText(applicationContext, message, Toast.LENGTH_LONG).show()
}
}
키보드에서 완료 버튼을 눌렀을 때, Button을 클릭할 수 있게 하였습니다.
Button을 클릭하면 토스트 메세지가 나옵니다.
완성된 모습입니다.
'안드로이드 코틀린' 카테고리의 다른 글
[Kotlin][Android] chip 동적 추가 삭제하기 (0) | 2021.10.07 |
---|---|
[JAVA][Kotlin] MVVM 패턴 으로 RecyclerView 만들기 (0) | 2021.09.30 |
[Kotlin][Android] Rxkotlin 이용한 스레드 (0) | 2021.09.09 |
[Kotlin][Android] JetPack UI 컴포넌트 Pallete 사용해보기 (0) | 2021.09.07 |
[Kotlin][Android] 블루투스 On/Off 제어하기 (0) | 2021.09.05 |