본문 바로가기

앱 개발/Chapter_Curriculum

[미니 프로젝트] Binding

binding = ActivityProfile3Binding.inflate(layoutInflater).apply {
            backButton.setOnClickListener { finish() }
            blogTextView.setOnClickListener {
                startActivity(Intent(Intent.ACTION_VIEW).apply {
                    data = Uri.parse("https://lionbae.tistory.com")
                })
            }
            setContentView(root)
        }

 

ActivityProfile3Binding.inflate(layoutInflater): ActivityProfile3Binding 클래스의 인스턴스를 생성하고, 해당 인스턴스를 통해 XML 레이아웃을 인플레이트한다. layoutInflater는 현재 컨텍스트에 대한 것을 나타낸다.


.apply { ... }: 이전 단계에서 생성된 ActivityProfile3Binding 인스턴스에 apply 함수를 사용하여 여러 작업을 수행할 수 있는 블록을 제공한다.

 

backButton.setOnClickListener { finish() }: XML 레이아웃에서 정의된 backButton이라는 뷰에 클릭 리스너를 설정한다. 클릭 시 finish() 메서드를 호출하여 현재 액티비티를 종료한다.

 

blogTextView.setOnClickListener { ... }: XML 레이아웃에서 정의된 blogTextView라는 뷰에 클릭 리스너를 설정한다.

 

startActivity(Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("https://lionbae.tistory.com") }): 클릭 시 웹 브라우저를 열어 지정된 URL("https://lionbae.tistory.com")로 이동하는 Intent를 생성하고 액티비티를 시작한다.

 

setContentView(root): XML 레이아웃의 최상위 루트 뷰를 현재 액티비티의 컨텐츠 뷰로 설정한다.


 요약하면 데이터 바인딩을 사용하여 XML 레이아웃과 상호 작용하며, back 버튼 또는 블로그 텍스트 뷰 클릭 시에 각각 액티비티 종료 또는 해당 웹 페이지로 이동하는 동작을 수행한다.

728x90

'앱 개발 > Chapter_Curriculum' 카테고리의 다른 글

[과제] 피드백 (키오스크)  (0) 2024.03.18
Chapter2 (프로그래밍 문법)  (0) 2024.03.12
[미니 프로젝트] ProfileActivity  (0) 2024.02.29
TIS  (0) 2024.02.27
[미니 프로젝트] SplashActivity, Handler  (0) 2024.02.27