-
[안드로이드] Fragment 에서 Activity 로 데이터 전달(Fragment to Activity)안드로이드 2016. 12. 6. 11:14
최근 들어서는 Fragment 를 많이 사용함에 따라
Fragment 에서 Activity 로 데이터를 보내거나 사용해야 될 일이 많아졌다.
eventBus 같은걸 사용하면 더 쉽게 사용되긴 하지만
정통적인 방법을 쓰고 싶어서 찾아보았다.
1. Fragment 에서 인터페이스 생성
public interface OnApplySelectedListener {
public void onCatagoryApplySelected( 자료형(String, int 등) 변수명);
}
2. 사용될 Activity에서 위 인터페이스 함수 구현
클래스 이름부에서 implements ExampleFilterFragment.OnApplySelectedListener
를 추가해 준 뒤,
@Override
public void onCatagoryApplySelected( 자료형(String, int 등) 변수명) {
// 해당 Activity 에서 사용될 동작
}
3. 처음에 인터페이스 만든 ExampleFilterFragment에서 사용될 함수 추가
예를 들어 적용버튼에서 클릭이벤트로 사용되는 경우
private Activity activity;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if(context instanceof Activity) {
// 사용될 activity 에 context 정보 가져오는 부분
this.activity = (Activity)context;
}
}
btnApply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((OnApplySelectedListener)activity).onCatagoryApplySelected(적용될 데이터);
}
});
'안드로이드' 카테고리의 다른 글
[android] 모델 클래스에서 inner 클래스 데이터 바인딩 하기 (0) 2016.12.12 [java]Arraylist 에서 item 삭제 (0) 2016.12.07 [안드로이드]오늘 날짜 비교 체크 (0) 2016.07.21 스피너 형태 DatePickerDialog 만들기 (1) 2016.07.06 [안드로이드] 위도, 경도 가져오기 공식 글 (0) 2016.07.05