# 개발환경
tool : android studio 4.0 os : windows 10 pro 64-bit |
# 배경
버튼의 액션을 사용하기 위해서 다음 두 가지 방식으로 설정할 예정 ▶ .kt > 리스너 ( listener ) ▶ .xml > onClick |
.kt > 리스너를 이용하는 방법
// app > java > package > MainActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 방법 1-1: 리스너
// login.setOnClickListener(View.OnClickListener { onbtnClicked() })
// 방법 1-2: 리스너 - 람다식
login.setOnClickListener { btnClicked() }
}
// 클릭 이벤트
fun btnClicked(){
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
}
}
람다식과 일반식으로 설정할 수 있는데 보통 람다식을 이용함
.xml > onClick 속성을 이용하는 방법
# app > res > layout > activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity">
<Button
android:id="@+id/backBtn"
android:onClick="backBtnClicked"
android:layout_width="100dp"
android:layout_height="0dp"
android:text="뒤로가기"
android:textStyle="bold"
android:textColor="#fff"
android:fontFamily="sans-serif-light"
android:layout_marginTop="50dp"
android:background="@drawable/btn_rounded_corner_gray"
app:layout_constraintTop_toBottomOf="@+id/tv1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
- button id를 설정해주어야 함
- onClick 메소드에 SecondActivity.kt에서 수행할 메소드의 이름을 넣음
// app > java > package > SecondActivity.kt
import ..
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
}
//뒤로가기 버튼 액션
fun backBtnClicked(view: View){
//TODO action
finish()
}
}
'LANGUAGE > Kotlin' 카테고리의 다른 글
[Kotlin] Lottie btn (0) | 2020.06.26 |
---|---|
[Kotlin] 상단바(actionBar), 상태바(statusBar) (0) | 2020.06.26 |
[Kotlin] round Button (gradient) (0) | 2020.06.26 |
[Kotlin] LinearLayout / RelativeLayout / ConstraintLayout (0) | 2020.06.25 |
[Kotlin] gradient layout (0) | 2020.06.25 |