[UMC 5기] Android 스터디 2주차

2023. 9. 24. 18:17·대외활동/UMC 동아리

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
'대외활동/UMC 동아리' 카테고리의 다른 글
  • [UMC 5기] Android 워크북 3주차
  • [UMC 5기] Android 워크북 2주차
  • [UMC 5기] Android 워크북 1주차
  • [UMC 5기] Android 스터디 1주차
월월
월월
  • 월월
    서벅돌의 성장일기
    월월
  • 전체
    오늘
    어제
    • 분류 전체보기 (121)
      • TIL (2)
      • Server (29)
        • spring (8)
        • node.js (16)
        • 기타 (5)
      • App&Web (17)
        • Web (1)
        • Android (16)
        • iOS (0)
      • 공부 (59)
        • 깃&깃허브 (3)
        • 파이썬 (17)
        • 유니티 (4)
        • 자료구조 | 알고리즘 (15)
        • 자바 (3)
        • 운영체제 (8)
        • AI와 데이터 (9)
      • 대외활동 (12)
        • NPC 동아리 (1)
        • UMC 동아리 (11)
      • 대학교 (1)
        • 교직 (1)
      • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글 관리
  • 링크

  • 공지사항

    • Notice
  • 인기 글

  • 태그

    자바
    kotlin
    안드로이드
    java
    Python
    Lua
    파이썬
    유니티
    C
    Android
    mysql
    코틀린
    Unity
    루아
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
월월
[UMC 5기] Android 스터디 2주차
상단으로

티스토리툴바