build.gradle.kts
...
// 뷰 바인딩 허용하기, Sync Now
buildFeatures{
viewBinding = true
}
...
MainActivity.kt
package com.example.ex_event
import android.app.Activity
import android.app.ActivityManager
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.ex_event.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity(), View.OnClickListener {
// 바인딩 값을 기억할 수 있는 변수 선언
// 클래스 이름(Activity 이름이 먼저 사용) + Binding
// binding 변수가 실제로 담을 내용은 화면을 구성할 때 -> onCreate()가 실행될 때!
// 나중에 초기화를 진행하겠다는 의미의 lateinit 키워드를 사용!
lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// lateinit으로 지정된 binding의 값을 지정하기
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// Event를 연결하는 방법 1 -> xml 파일에 이벤트 함수 연결
// xml 파일 자체에 view에 대한 onClick 이벤트 연결하기
// --> 코드상에 이벤트를 연결하는 가장 고전적인 방식
// 이벤트의 흐름
// 버튼 클릭 -> 클릭 액션 감지 -> 감지된 이벤트 처리(Toast 메세지)
// Event를 연결하는 방법 2 -> 클래스 자체에 리스너를 연결하여 사용하는 방법
// 리스너를 감지 시 onClick() 호출!
// this -> 리스너가 가지고 있는 onClick() 호출
binding.button.setOnClickListener(this)
}
// Event1) 클릭 리스너가 감지되었을 때 사용할 이벤트 함수 생성
// fun myEvent(view : View) {
// // 1.어플에 대한 정보, 2. 띄울 문자, 3. 시간
// Toast.makeText(applicationContext, "이벤트 감지 완료!", Toast.LENGTH_SHORT).show()
// }
// Event2) view.OnClickListner 사용 시 무조건적으로 생성해야 하는 메소드!
override fun onClick(v: View?) {
Toast.makeText(applicationContext, "이벤트 감지 완료!", Toast.LENGTH_SHORT).show()
}
}
버튼에 onClick 이벤트 연결

버튼 누를시 toast 알림 확인
