마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Fragment 함수 호출 관련 질문입니다.

0 추천
프로젝트를 생성해서 기본 레이아웃을 Tab + Swipe로 만들었습니다.

그 다음 3개의 fragment를 각각 생성해서 로드 시켰구요. 그리고 ActionBar로 상단 탭메뉴도 3개를 만들었습니다.

각각의 fragment가 하는 일은 리스트뷰에서 특정 폴더의 파일목록을 읽어오는 기능을 합니다.

(각 fragment 마다 불러오는 경로는 다릅니다.)

 

그래서 각 fragment OnStart() 함수에 목록을 갱신하는 함수를 하나 만들었습니다.

그런데 문제는 fragment1에서 fragment2로 이동시 fragment2의 OnStart() 함수가 호출이 되지 않더라구요.

그래서 좀 알아보니 Swipe 특성상 fragment1에서 fragment2로 가면 fragment3의 OnStart() 함수가 호출이 되고,

fragment3에서 fragment2로 가면 fragment1의 OnStart() 함수가 호출 되더라구요.

fragment2에서의 OnStart() 함수를 불러오는 경우는 홈버튼을 누르거나 앱을 재시작 할 경우 fragment1이 로드 되면서

fragment2의 OnStart() 함수가 로드 됩니다. fragment1에서 fragment2로 이동시 fragment2의 OnStart() 함수를 호출 할 수 있는 방법이 없을까요? 아니면 MainActivity에서 상단 탭 메뉴 이동시 각 포지션에 맞는 fragment의 특정 함수를 호출 하는 방법이 없을까요?
익명사용자 님이 2015년 4월 8일 질문

1개의 답변

0 추천

탭 메뉴를 구성하셨으면 아래와 같이 탭 관련 이벤트를 받을 수 있습니다.

public void setOnTabChangedListener (TabHost.OnTabChangeListener l)

public abstract void onTabChanged (String tabId)

해당 이벤트를 받아서 각 fragment로 새로고침 하는 메소드를 호출하도록 유도하시면 될 듯 하네요

Gradler (109,780 포인트) 님이 2015년 4월 9일 답변
...