본문 바로가기

액티비티5

[Android] 안드로이드 위젯 알아보기 3편 - Glance, Compose, Kotlin (Android Compose Glance Appwidget) 상호작용 지난 2편에서는 간단한 앱 위젯을 만들어봤다면 이번 3편에서는 액티비티 실행, 서비스 실행 등 앱 위젯 상호작용에 대해서 알아보자!# 상호작용 종류- 활동 실행 (Activity)- 서비스 실행- 브로드캐스트 이벤트 전송- 콜백 실행 상호 작용이 가능한 종류로는 위 4가지가 있다.위 종류에 대한 작업을 실행하려면 GlanceModifier.clickable 메서드를 사용하거나 Button의 onClick 메서드처럼 Action클래스에서 정의해 주면 된다. 하나하나 살펴보자!## 활동 실행 (Activity)만약 어떠한 Action이 들어왔을 때 액티비티를 띄워주고 싶다면 아래와 같이 actionStartActivity라는 메서드를 사용한다. actionStartActivity에는 총 3가지를 제공할 수 .. 2024. 5. 3.
[Android] 안드로이드 Parcelable(@Parcelize) 사용해 액티비티간 데이터(Object) 전달하기 - Kotlin 안드로이드에서의 액티비티 간 Object를 전달하는 방법은 두 가지가 있다. 1. Serializable(직렬화)를 통한 방법 2. Parcelable interface를 통한 방법 이번 공부내용은 두 번째 방법인 Parcelable을 사용해서 액티비티 간 Object를 전달하는 법을 알아보겠다. # Parcelable란? - Parcel이라는 뜻을 먼저 해석해보면 소포, 꾸러미등으로 해석이 되고 Parcelable이라 함은 택배로 부칠 수 있는 정도로 해석이 가능하다. - Android에서 지원해주는 SDK에 포함되어 있는 인터페이스이다. - Serializable 대비 속도면에서 훨씬 빠르다. # 기존 Parcelable 문제점 - Parcelable을 구현하는 것은 직접 구현해야 한다 그렇게 때문에.. 2022. 10. 28.
[Android]안드로이드 프래그먼트 종료(finish) 시키기 개발하다가 프래그먼트 안에서 회원 탈퇴 구현 시 내가 원하는 구현 방식은 마이페이지 -> 회원 탈퇴 -> 로그인 페이지 -> Back키 -> 어플 종료 이런 식으로 구현을 하려고 했다. 하지만 Back를 눌렀을 때 전에 있던 프래그먼트가 종료가 안되어서 프래그먼트를 종료 시켜야 할 상황이 생긴다. 액티비티에서는 finish()를 해주면 되지만 프래그먼트에서는 그냥 finish()를 쓰면 안 된다. # 해결 방법 class MypageFragment : Fragment() { private var mbinding: FragmentMypageBinding? = null private val binding get() = mbinding!! override fun onCreateView(inflater: Lay.. 2022. 3. 2.
프래그먼트(Fragment) with Kotlin 알아보기! # 프래그먼트(Fragment) 안드로이드 공식 문서에 보면 프래그먼트를 아래와 같이 설명하고 있다. Fragment는 FragmentActivity 내의 어떤 동작 또는 사용자 인터페이스의 일부를 나타냅니다. 여러 개의 프래그먼트를 하나의 액티비티에 결합하여 창이 여러 개인 UI를 빌드할 수 있으며, 하나의 프래그먼트를 여러 액티비티에서 재사용할 수 있습니다. 프래그먼트는 액티비티의 모듈식 섹션이라고 생각하면 됩니다. 정리하자면 프래그먼트를 사용하면 재사용할 수 있는 레이아웃을 분리해서 관리할 수 있고, 액티비티의 복잡도도 줄여주며, 크기가 고정이라 하더라도 부분적인 UI 변화에서 유용하게 사용된다. 특히, 액티비티 하나만 만들고 나머지는 프래그먼트로 처리하여 단일 액티비티로 개발할 때도 있다. # 프.. 2022. 2. 10.
다른 액티비티에서 특정 액티비티 종료하기 어플을 만들다가 메인 페이지→ 마이페이지 → 회원 탈퇴→ 로그인 페이지→ Back키 → 어플 종료를 구현하려고 했다. 하지만 Back를 누르면 다시메인 페이지가 나오는 현상이 있었다. 곰곰이 생각해보니 마이페이지에서 회원 탈퇴를 할 때 finish()를 해줘도 마이페이지만 종료되고 메인 페이지는 남아있게 되는 것이었다. 그래서 특정 액티비티를 종료하는 방법을 찾았다. 정상 비정상 왼쪽이 구현하려던 알고리즘이고 오른쪽이 발생한 현상이었다. # 해결방법 MainActivity.kt Class MainActivity : AppCompatActivity(){ companion object{ // MainActivity 타입의 객체를 동반 객체로 선언한다(자바에서는 static) var mainActivity :.. 2022. 1. 5.