woong's

Android Fragment 통신 하기 본문

Develop/Android

Android Fragment 통신 하기

dlsdnd345 2016. 2. 14. 13:00

Android Fragment 통신 하기 


안녕하세요. android Fragment 통신에 대해서 포스트를 써보려 합니다 .

Android Fragment 를 엄청 많이 사용 하고 있습니다 .


사용하면서 간혹 그런 경우가 있습니다 .


Fragment ​에서 Activity를 호출해야 되는데 ... 어떻게 하지 ... 이런 경우가 있죠 


Fragment 에서도 Activity 를 호출 할 수 있습니다 .


호출방법


1. Fragment 에 이벤트 인터페이스 정의


​첫번째로 Fragment 에 이벤트 인터페이스를 정의 해야 합니다 . 


Colored By Color Scripter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    // container (프래그먼트를 포함하는) Activity 가 이 인터페이스를 구현해야 한다.
    public interface OnHeadlineSelectedListener {
        public void onArticleSelected(int position);
    }
 
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
 
        try {
            mCallback = (OnHeadlineSelectedListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()+ " must implement OnHeadlineSelectedListener");
        }
    }

 

 

​Frament 에 위의 코드를 넣어 주면 되겠습니다.


2. Activity에 이벤트 인터페이스 구현


​Fragment 에 인터페이스를 정의 하고 Activity 에서 구현을 진행 합니다 . 


Colored By Color Scripter

1
implements 인터페이스를 정의한 Fragment.OnHeadlineSelectedListener

 

 

​위코드를 정의하면 하단의 메서드가 생성 됩니다 . 

 

Colored By Color Scripter

1
2
3
4
5
6
7
8
    /**
     * Fragment 에서 호출
     */
    @Override
    public void onArticleSelected(int position) {
        
        
    }

 

 

4. 이벤트 콜백 호출


이제 모든 준비가 끝났습니다 .


Colored By Color Scripter

1
mCallback.onArticleSelected(position);



위코드를 호출하면 , Activity의 onArticleSelected 가 호출이 됩니다 . 여러군데에서 호출될 경우를 대비해서 position 값이

있습니다 . position 값을 이용해서 Activity 에서 분기문을 통해서 Acticity 안의 호출 하고 싶은 부분을 호출 할 수 있습니다 .

Comments