본문 바로가기
Android

프래그먼트 (Fragment) - 3. 통신

by hyunjing0 2021. 11. 25.

 

MainActivity는 ToolbarFragmentTextFragment 2개로 이루어져있다.

ToolbarFragment안의 EditText 안에 텍스트를 입력, Seekbar로 텍스트의 크기를 조절하고 Change Text 버튼을 클릭하면

TextFragment의 TextView가 변한다.

 

 

Fragment의 통신

 

Activity가 Fragment를 찾을 땐 findViewById 메소드로 Fragment의 id를 참조하면 되지만, 

그 반대의 경우 Fragment끼리 통신할 수 없고 Fragment가 포함된 Activity(hosting)를 거쳐야 한다.

 

 

 

통신 방법

 

1. Fragment에서 Interface 선언 (안에 추상메소드 구현)

ToolbarFragment

 

 

2. Activity(hosting)에서 상속. 구현은 이따

onButtonClick 안의 코드는 이따가 구현

 

 

3. activityCallback

seekValue는 seekBar의 Progress 초기화
onAttach(Lifecycle)

ToolbarListener 구현을 MainActivity가 잘 해주고 있는지 확인작업

onAttach는 Lifecycle 주기의 맨 첫번째 주기

 

try -> 제대로 구현 했다면 context가 ToolbarListener가 맞는지? 맞다면 activityCallback에 context 삽입

catch -> 제대로 구현하지 못했다면 Error는 ClassCastException(ToolbarListener를 구현X) -> 에러메시지 출력

 

 

 

4. onCreateView

button에 ClickListener 구현

onButtonClick()은 다음 단계에 MainActivity에서 구현

 

 

 

5. MainActivity

FragmentManager를 가져와 TextFragment 안의 changeTextProperties 메소드 사용

 

 

TextFragment

'Android' 카테고리의 다른 글

리사이클러뷰 (RecyclerView) - 2. ViewModel  (0) 2021.11.26
리사이클러뷰 (RecyclerView) - 1  (0) 2021.11.26
프래그먼트 (Fragment) - 2. 동적 교체  (0) 2021.11.25
프래그먼트 (Fragment) - 1  (0) 2021.11.24
스피너 (Spinner)  (0) 2021.11.23