티스토리 뷰
반응형
SMALL
반응형
맨날 까먹어서 기록,
Fragment 로 데이터를 전달 할때 Bundle 을 사용한다.
2024.02.28 - [Android/Etc] - [ Etc #15 ] Bundle vs Intent
[ Etc #15 ] Bundle vs Intent
간단하게 정리 Intent 는 데이터를 전달하는 개념이고, Bundle 은 데이터를 저장하는 용도 주로 Activity 에 데이터를 전달 할 때에는 Intent 를 사용. Fragment 로 데이터를 저장(?) 할때에는 Bundle 을 사용..
jihunstudy.tistory.com
FragmentMain().apply {
arguments = Bundle().apply {
putInt("int", 2)
putString("string", "22")
putBoolean("boolean", false)
putSerializable("list", tabList as ArrayList)
}
}
보낼 때 ( 저장할 때 )
arguments?.run {
val num = getInt("int") ?: 0
val string = getString("string") ?: ""
val boolean = getBoolean("boolean") ?: false
val list = bundleSerializable("list", ArrayList::class.java) as? ArrayList<TabData> ?: arrayListOf()
}
받을 때 ( 저장한거 뽑아올 때 )
getSerializable
이 하위 버전에서 Deprecated 되었기 때문에 분기 처리를 해주는 함수로 하나 만들어서 사용 한다
fun <T: Serializable> Bundle.bundleSerializable(key: String, clazz: Class<T>): T? {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
this.getSerializable(key, clazz)
} else {
this.getSerializable(key) as T?
}
}
참고로 list나 특정 object 를 전달 할 때에는 해당 class 가 Serializable 를 상속 받고 있어야 한다
data class TabData(
val name: String,
val isNative: Boolean,
val url: String? = null,
): Serializable
반응형
LIST
'Android > Fragment' 카테고리의 다른 글
| [ Fragment #1 ] Fragment Lifecycle (1) | 2022.09.19 |
|---|
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 폴더블 이벤트 받기
- Android
- 맥 전용
- github
- 테스트 앱 배포
- github secrets
- 기름잡아주는
- aos img url bitmap
- 안드로이드 플립 대응
- widget 만들기
- 오브제썬스틱
- 갤럭시 워치
- widget onreceive
- local.properties
- 폴더블 상태 유지
- widget 이미지 로딩
- 웨어러블
- 쏘렌토 하이브리드 시그니처
- api key 관리
- flutter web
- firebase distribution
- wear os
- 쏘렌토 하이브리드
- 안드로이드 폴드 대응
- widget glide
- 테스트 배포
- github actions
- widget onupdate
- 풀배열 키보드
- android widget 만들기
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
글 보관함