fragment 이동시 data 초기화
391
1 asked
fragment 1 에서 btn 을 눌러서 plus가 되면 value값이 증가를 하고, 이 증가한 상태에서 fragment 2로 갔다가,
다시 fragment1 을 누르면 이전에 fragment가 나오는게 아니라 새로운 fragment가 생성이 되네요?
transaction할 때 replace를 써서 그런것 같은데,
fragment1 버튼을 누르면 새로운 fragment1이 아닌 기존 생성한 fragment1 화면으로 가는 것은 어떻게 해야 하나요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
replace()는 현재 스택에서 특정 Fragment를 pop하고 해당 Fragment를 추가하는 메소드입니다. 따라서 기존 Fragment가 아니라 새로운 Fragment가 생성됩니다.
해결 방법으로는, Fragment1에서 Fragment2로 이동할 때 Fragment1의 값을 저장하고, Fragment1로 돌아올 때 저장된 값을 불러와 화면에 표시하면 됩니다.
Fragment1에서 값 저장하기
Fragment1에서 plus 버튼을 클릭할 때마다 값을 저장합니다. 이때 데이터는 ViewModel이나 Bundle 등을 활용해 저장합니다.Fragment2로 이동할 때 저장된 값 전달하기
Fragment1에서 Fragment2로 이동할 때 저장된 값을 전달합니다. 이때 Bundle이나 ViewModel 등을 활용합니다.Fragment1로 돌아올 때 저장된 값 불러오기
Fragment1로 돌아올 때, 저장된 값을 불러와 화면에 표시합니다. 이때 Bundle이나 ViewModel 등을 활용합니다.
위 방법을 활용하면, Fragment1에서 Fragment2로 이동할 때 마다 화면이 변경되는 것이 아니라 저장된 값으로 이전 Fragment 화면을 복원할 수 있습니다.
참고로, 만약 Fragment1이 Activity에 의해 재생성되는 경우 Bundle이나 ViewModel 등을 활용해 이전 상태를 복원할 수 있습니다.
프로그래밍에 대해 궁금한 점이 있다면 댓글로 질문해주세요. 감사합니다.
dataBinding 시 오류
0
66
2
Retrfit 에러
0
146
2
[Retrofit 간단한 예제 변경 + RecyclerView 추가] 에 databinding 추가해 보았습니다.
1
218
2
Navigation Data Transfer Safe Args 강의중에서
0
267
2
viewModel 초기화 관련 질문드려요
0
283
1
Fragment에서 ViewBinding과 DataBinding 초기화 차이가 궁금합니다.
0
282
1
최상단 변수 선언 관련하여 질문드려요
0
190
1
Retrofit + ViewModelScope + RecyclerView + Glide 강의중에서
0
321
2
Retrofit 간단한 예제 변경 강의중에서
0
302
2
LiveData 와 MutableLiveData 차이강의중에서
0
502
5
Activity/Fragment ViewModel 공유 10분35초경에 fragment 에 viewModel선언
0
221
1
안드로이드 테마 색상 오류
0
245
1
Map / SwitchMap - 2 강의 오류
0
386
1
에러
0
351
1
ViewBinding 질문 있습니다.
2
386
2
CoroutineScope 질문
0
371
1
뷰모델 질문
0
308
1
바인딩 때 xml
0
289
1
코루틴과 workmanager 순서 정하기의 차이점
0
521
1
ViewModel 값
0
296
1
Retrofit 질문입니다.
0
491
1
Activity / Fragment 의 ViewMode 질문있습니다.
0
317
1
2강 질문이씁니다.
0
283
1
Json 형식 데이터 모델 설계 질문드립니다 :)
2
1518
1

