Jetpack Navigation Fragment to Fragment direction(Room+livedata+viewModel) 데이타 넘기기 > QnA

본문 바로가기

사이트 내 전체검색

뒤로가기 QnA

안드로이드 Jetpack Navigation Fragment to Fragment direction(Room+livedata+viewMo…

페이지 정보

작성자 청솔 작성일 21-02-26 12:36 조회 594 댓글 7

본문

댓글목록 7

Scott님의 댓글

Scott 작성일

위젯이 안 잡힌다는 건 생명주기 문제 일겁니다.

onViewCreated() 를 오버라이드 하고, 안에서 호출해 보세요

override fun onViewCreated() {
    // 여기서
}

청솔님의 댓글

청솔 작성일

넵  ꒰◍ॢ•ᴗ•◍ॢ꒱

청솔님의 댓글

청솔 작성일

잘 됩니다. 이틀동안 엄청 힘들었어요. 감사합니다.  ˵ ͡ᵔ ͜ʟ ͡ᵔ ˵

청솔님의 댓글

청솔 작성일

한가지만 더 어쭙겠습니다.

Jetpack Navigation Fragment to Fragment direction 을 사용중에
A프레그먼트는 입력 프래그먼트입니다.
B프래그먼트는 리스트를 가진 프래그먼트입니다.(CallLog)
C프래그먼트는 입력받은 값을 출력하는 리스트 프래그먼트입니다.

B프래그먼트에서 A프래그먼트로 리스트의 포지션 값을 전달하여 A프래그먼트를 열어 나머지 값을 채운후 C프래그먼트로 값을 전달합니다.
C프래그먼트에서는 단순 입력을 위해 A프래그먼트를 여는 플로팅 버튼을 가지고 있습니다.

위에 내용이 좀 헛갈릴 순 있는데. (*** 이 내용만 읽으셔도 될듯****) 결론적으로 여쭈고 싶은 것은
A 입력창으로 접근하는 곳이 B와 C 두군데입니다.
B는 값을 가지고 접근하고, C는 단순히 새로운 값을 입력하기 위해 입력창을 열고 있습니다.

값을 가지고 입력하니, 단순히 입력하려고 접근하는 곳과 충돌이 일어나 단순입력하려는 곳은 에러를 발생시킵니다.

제가 해결한 것은 B와C 둘다 값을 주어 해결하였습니다.
하지만 Argument 에 값을 전달하고, 각 프레그먼트에서 값을 받는 코드까지 작성해야만 하는지 의문이 들었습니다.
좀 단순하게...  입력창만 여는 C프래그먼트에서 초기화된 값을 만들어
 입력프래그먼트를 열어 값을 가지고 접근하는 A(입력)프래그먼트와 충돌을 피할 수 있을까요?
단순히 초기값을 여기저기 막 집어넣어보는데... 안되는군요 . ꉺ0ꉺ

Scott님의 댓글의 댓글

Scott 작성일

C 프래그먼트의 onCreate 에 setFragmentResultListener 를 사용해 보세요

그러면 A 에서 던지든지, B 에서 던지든지 동일한 형태로 받아서 처리할 수 있습니다.

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setFragmentResultListener("요청키이름") { key, bundle ->
            bundle.getString("키")?.let {
                // 전달받은 값 여기서 처리
            }
        }
    }

B는 아직 열리기 전이니까 A에서 arguments 를 전달하는 형태로 처리해야 겠군요

그리고 마지막에 B에서 C에 세팅된 리스너 쪽으로 값을 던져주면 될것 같습니다.

사용법은 아래 링크 참조하세요
https://flow9.net/bbs/board.php?bo_table=android&wr_id=23

청솔님의 댓글

청솔 작성일

아... 고선생님 글을 분명히 본 기억이 있어서 찾던건데... 찾질 못하다니.. 저희집 큰애 말대로 휴식을 해야할까봅니다. 요즘은 4시넘으면 눈이 침침해집니다. 7개월 동안 너무 달렸나봐요... 올리신 강의를 가끔 보는데.. 언제쯤 쓸수 있을까? 이건 아직 나에겐 무리야... 이건 내수준에 딱이네 하며 맞춰보지만 솔직히 대부분의 내용이 아직 벅찹니다. 다행스러운건 기본 며칠씩 헤매는것들이 10중 8.9는 엉성한 코드지만 어찌어찌 해결합니다. 가르치시는 방향이 좋으신거 같습니다. 어쩔수 없어보이는건 다 가르쳐주시고 생각을 할수 있는.. 스스로 해결할수 있는 방향을 제시해 주시는 게 저에겐 참 좋습니다. 처음엔 많이 힘들었는데 점점 해결능력이 업됩니다. 올해안에는 짜임새 있는 코드를 짜보고 싶습니다.  항상 감사합니다 (^_-)

Scott님의 댓글의 댓글

Scott 작성일

에구 감사합니다! 다른 코드를 많이 참고하시면 좋을것 같습니다.

Copyright © flow9.net All rights reserved.

Site info.

Team Flow9
Address : 10, Gukjegeumyung-ro, Yeongdeungpo-gu, Seoul, Republic of Korea
Contact : flow9.net@gmail.com

change for PC screen