작성
·
370
답변 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 등을 활용해 이전 상태를 복원할 수 있습니다.
프로그래밍에 대해 궁금한 점이 있다면 댓글로 질문해주세요. 감사합니다.