Activity
- Application을 구성하는 기본 단위이며 사용자와 상호작용하는 UI를 표시해주는 요소
- 앱이 실행될 때 화면에 UI를 표시하는 역할
- 사용자의 클릭이나 입력 등의 이벤트 처리하는 역할
- 새로운 UI를 화면에 표시
Fragment
- 태블릿 등 크기 큰 디바이스가 나오면서 Acitivity라는 단위만으로는 화면을 처리하기 어려워졌음
- UI 구성을 모듈 단위(조각)으로 나누어 독립성을 추가해줌
- 한 화면에 있던 UI 들을 조각이라는 단위로 재배치 하는 것
뷰바인딩
원래 안드로이드 스튜디오에선 findViewById라는 것을 사용해서
activity_main이라는 xml파일에 있는 id 값을 이용해서 xml과 class 파일을 연결해주었음
findViewById :
하나의 변수를 선언하여 하나의 뷰를 연결해줌
val 변수 = findViewById<원하는 뷰>(id값)
하나의 변수를 선언해주고 findViewById를 사용해서 xml에 있는 View를 가져올 수 있음
val textView = findViewById<TextView>()
이런식으로 가져오는 뷰가 텍스트 뷰라면 원하는 뷰에 TextView를 적고 id값을 적어주면 됨
val textView = findViewById<TextView>(R)
id을 적는 방법은 R을 적으면 됨
R은 resource파일의 첫글자인 R이라고 생각하면 됨
val textView = findViewById<TextView>(R.id)
resource파일에 있는 id값을 가져오고
val textView = findViewById<TextView>(R.id.main_player_cl)
다음으로 해당 id값을 적어주면 됨 (여기서 내가 찾는 id값은 'main_player_cl' 임)
이런식으로 하나의 변수와 activity_main에 있는 View를 연결시켜줄 수 있음
ctrl + id 누르기 하면 연결된 뷰가 무엇인지 확인할 수 있음
textView.text = 'dd'
이처럼 해당 뷰의 값을 변경하거나 어떠한 작업을 하려면 변수를 선언하고 뷰와 연결시켜주는 작업을 해야 함
하지만 findViewById값은 null값을 처리 못 해주는 에러인 null point exception이 일어나기도 하고
여러 개의 뷰들을 만들면 하나하나 연결해주기 위해 많은 변수를 선언해줘야 함
코드가 길어지고 가독성이 떨어짐
뷰 바인딩 :
null point exception 에러 해결
코드의 가독성 떨어지는 문제 해결
binding.mainPlayerCL
binding을 쓰고 .을 누르고 우리가 작업할 view의 이름을 선택해주면 됨
여기서 mainPlayerCl은 mainActivity에 있던 mainPlayer을 뜻함
binding.mainPlayerCL.setOnClickListener {}
setOnClickListener은 뷰에 들어가있는 뷰에 대한 작업을 해주는 하나의 함수라고 생각하면 좋음
binding.mainPlayerCL.setOnClickListener {
startActivity(Intent(this, SongActivity::class.java)
}
Acitivity를 전환하는 방법은 mainPlayer 레이아웃을 클릭했을 때 startActivity메소드를 사용
startActivity를 쓰고 괄호 안에 Intent를 써줌
Intent 안에는 어디서 어디로 갈 것 인지에 대해서 써줌
Intent
하나의 Activity에서 사용하는 택배상자
택배상자란 startAcitivity를 사용할 때 this, 현재 Acitivity에서 SongActivity로 이동할 때
택배상자를 startActivity라는 메소드를 통해서 현재 Activity에서 보내는 것
'대외활동 > UMC 동아리' 카테고리의 다른 글
| [UMC 5기] Android 워크북 3주차 (0) | 2023.09.29 |
|---|---|
| [UMC 5기] Android 워크북 2주차 (1) | 2023.09.29 |
| [UMC 5기] Android 워크북 1주차 (0) | 2023.09.22 |
| [UMC 5기] Android 스터디 1주차 (0) | 2023.09.20 |
| [UMC 동아리] 5기 합격 후기 (0) | 2023.09.17 |