Android65 [Android] Fragment Lifecycle 프래그먼트를 사용하면 화면하나를, 독립적으로 작동하는 부분화면 여러개로 구현할 수 있다프레그먼트는 엑티비티처럼 레이아웃을 표시하고, 생명주기를 가지며 입력 이벤트를 받을 수 있다하지만 독립적으로는 존재할 수 없고, 해당 프래그먼트를 관리하는 호스트 액티비티나 프래그먼트 하위에서만 존재할 수 있다 엑티비티는 안드로이드 4대 컴포넌트 중 하나로 안드로이드 시스템에서 관리하지만,프레그먼트는 안드로이드 시스템이 직접 관리하지 않고 FragmentManager가 관리하기 때문에 엑티비티보다 메모리 리소스가 상대적으로 덜 소모된다.또한 한번 작성된 프레그먼트는 여러 액티비티에서 재사용이 가능하며, 따라서 UI 구현에 필요한 작업량을 감소시킬 수 있다 # 프래그먼트 수명 주기 상태 및 콜백 -> 그림을 보면 Fr.. 2024. 3. 29. [Android] Activity Stack 및 backStack 각 앱마다 원하는 화면흐름이 있기 때문에 태스크 및 백스택 관리를 해야하는 경우가 발생한다이번시간에는 이런 태스크 및 백스택 관리에 대해 정리해볼것이다 실행된 엑티비티들은 기본적으로 task라는 곳에 존재하게 된다task는 사용자와 상호작용하는 엑티비티들을 묶어놓은 모음이다예를 들어 이메일앱에는 새 메시지 목록을 표시하는 활동이 있을 수 있는데, 사용자가 메시지를 클릭하면 해당 메시지를 볼 수 있는 새 활동이 열린다. 그러면 이 새 활동은 백스택에 추가되고, 사용자가 뒤로탭하는 동작을 취하면 새 활동이 종료되고 스택에서 사라지는 걸 볼 수 있다. # 백스택이란?실행된 엑티비티의 인스턴스들은 자료구조의 Stack구조로 저장되어 태스크에 속하게 되는데, 안드로이드 시스템에서는 이 스택을 Back Stack.. 2024. 3. 29. [Android/Kotlin] 버튼 눌렀을때 Fragment화면 나타내기 안드로이드에서는 화면을 바꾸는 방법이 두가지가 있는데첫번째는 새로운 엑티비티를 띄우는 방식, 두번째는 엑티비티의 일부만 바꾸는 방식(프레그먼트를 통해)이렇게 두가지가 있다 오늘은 두번째방식인 버튼을 눌렀을때 프레그먼트를 통해 엑티비티의 일부를 바꿔보는 방법을 기록해보려고 한다 일단 버튼을 만들어주고, 프레그먼트가 들어갈부분을 FrameLayout으로 만들어준다디자인을 보면 FrameLayout부분이 이렇게 공간을 차지하고있는것을 볼수있다. 이부분에 프레그먼트를 넣어줄것이다 activity_main.xml 이제 새로운 프레그먼트를 만들어준다.뷰바인딩을 사용해서 바인딩만 미리 설정해줬고, 디자인은 텍스트뷰만 추가해줬다class DonutListFragment : Fragment.. 2024. 3. 28. [Android/Kotlin] 코틀린의 ViewBinding과 DataBinding # ViewBinding과 DataBinding 사용하는 이유XML 레이아웃 파일을 만들고, 이 레이아웃을 코드에서 findViewById를 사용해서 연결해주는데 findViewById를 계속 쓰게되면 코드도 복잡해지고 유지보수도 어려워질 수 있는 문제가 발생한다 이러한 문제를 해결하기위해 ViewBinding과 DataBinding이 나왔는데 이를 사용하면매번 findViewById를 사용하지 않고 바로 바인딩할 수 있어서 가독성이 좋고, 유지보수가 쉽다 ViewBinding과 DataBinding은 이런점에서 공통점을 가지지만 선언방식, 코드작성방식 등에서 차이가 있다항상 ViewBinding과 DataBinding 쓸때마다 조금 헷갈려서 정리를 해보려고한다 # findViewById와의 차이점1.. 2024. 3. 28. [Android] 엑티비티 생명주기(Activity Life Cycle) 생명주기의 사전적 정의를 살펴보면 "어떤것이 태어나고 죽기까지의 기간"을 말한다고 나와있다 사람으로 예를들어보면, 사람은 태어나고 죽기까지의 생명주기를 가지며 이 생명주기동안 사람은 어린아이에서 어른이, 어른에서 노인이되는 과정을 거치게된다 그런데 안드로이드의 Activity도 이렇게 생성되고 소멸되기까지의 생명주기를 가지고있다이런과정은 여러함수들로 구성이 되어있는데 이런 함수들을 총칭해서 Activity 생명주기라고 부른다 그래서 이런 Activity 생명주기를 사용하면 프로그램을 더욱 안정적으로 구현할수있게된다 먼저 이런 Activity 생명주기를 왜 사용해야되는지 예를 들어서 설명해보면 휴대폰으로 게임을하고있는 도중에 전화가 왔다고 해보자그러면 보통 게임이 일시정지가 되고, 전화를 마치게되.. 2024. 3. 26. 프로그래밍 기초 과제 - 계산기 - 필수구현 기능 - 선택 구현 기능 LV4까지 진행해주었다 먼저 추상클래스를 만들어서 클래스를 추상화해준다 추상화는 클래스의 이름과 클래스 안에 있음직한 기능을 유추해서 메서드 이름으로만 먼저 나열하는것이다 그런다음 추상클래스를 상속받은 클래스에서는 오버라이딩을 통해 구현해줘야한다!! // 추상메소드로 만들기 abstract class AbstractOperation { abstract fun calculator(x: Int, y: Int) : Int } AbstractOperation.kt abstract 키워드를 사용해서 추상화를 시켜줬고, 입력값과 반환값이 Int인 간단한 추상메소드를 만들었다 class AddAbstractOperation: AbstractOperation() { override.. 2024. 3. 25. 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음