BloByJames

ViewPager와 Fragment 사용하기 (Fragment 함수 호출) 본문

프로그래밍/안드로이드

ViewPager와 Fragment 사용하기 (Fragment 함수 호출)

blobyjames 2016. 9. 28. 21:31

제일 많이 듣게 되는 질문 중 하나인,

ViewPager와 Fragment를 이용한 구조에서

특정 Fragment의 함수를 호출하는 방법을 소개하려 합니다.


(source 이해를 돕기 위해 아무런 library를 사용하지 않았습니다.)


사실 추상화(abstract)와 상속(extend)을 이용한다면 크게 어렵지 않습니다.

물론, 추상화와 상속 없이도, 각 Fragment에 접근할 수 있는 방법은 많습니다.


저는 추상화를 좋아하기 때문에, 추상화를 이용한 방법으로 진행하도록 하겠습니다.


우선 ViewPager를 사용 할 Activity를 만들어보겠습니다.



자, Java와 Android에 익숙한 분들은 벌써 눈치 채셨죠?


Fragment를 상속받은 BaseFragment라는 추상(abstract) Class를 만들고,

그 안에는 change라는 추상 Method를 두었습니다.


change()는 Button이 click 될 때 호출됩니다.


ViewPager에서 사용 될 각각의 Fragment는 BaseFragment를 상속받아서,

abstract void change() 함수를 구현했습니다.


BaseFragment를 우선 보여드리겠습니다.


중요한 것은 이것입니다.


public abstract void change();


그럼, BaseFragment를 상속받은 Fragment는 추상 Method를 어떻게 구현했는지 볼까요?


예상하셨겠지만, change()를 실제로 구현한 것 외에는 특별한게 없습니다.

복잡하고 어려운 방법이 아니라서 딱히 더 설명할 것이 없네요.


사용된 예제는 FragmentPagerAdapter-Example에서 확인하실 수 있습니다.


감사합니다.

Comments