Event - onClick

tpids·2024년 8월 12일

Android

목록 보기
10/29

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 알림 확인

profile
개발자

0개의 댓글