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

액티비티에서 프래그먼트로 데이터 전달 질문입니다!!

0 추천
현재 bundle사용해서 데이터 주고 받고 있는데요!!

메인 액티비티에서 프래그먼트로

비트맵이미지를 전달할 수 있는 방법 혹시 없을까요??
익명사용자 님이 2016년 9월 24일 질문

2개의 답변

0 추천
public class MyActivity extends Activity{
    

   private void doSomething(Bitmap bitmap) {
        MyFragment myFragment = (MyFragment)getSupportFragmentManager().findFragmentByTag("any_string");
        if (myFragment != null) {
            myFragment.wantBitmap(bitmap);
       }
   }
}

public class MyFragment extends Fragment {
      
     public void wantBitmap(Bitmap bitmap) {

     }
}

프레그먼트를 생성하실 때 tag를 주시고 비트맵을 넘겨주시기 전에 FragmentManager로 프레그먼트 생성시 사용했던 tag값을 가진 프레그먼트가 존재하는지 체크하신 다음, 존재하면 해당 프레그먼트의 메소드를 호출하여 받으시면 됩니다.
 

익명사용자 님이 2016년 9월 25일 답변
0 추천
위에 답변 달아주신 분처럼 해도 되고

비트맵 이미지를 필요로 하는 Fragment에서 getActivity()를 호출하면 부모가 되는 Activity를 호출 할수가 있는데

이 부모 Activity에서 비트맵 이미지를 리턴해주는 함수를 정의하여

Fragment에서 이 함수를 호출하여 참조하는 식으로 하셔도 됩니다.

 

말씀하신것처럼 bitmap클래스가 parcelable을 상속받기 때문에 bundle을 통한 데이터 전달도 가능하지만 bundle을 통해서 데이터를 전달이 가능한 max사이즈가 생각보다 작기 때문에 이미지 사이즈가 클 경우 문제가 될수가 있습니다. 위에 답변 주신분이나 제가 알려드린 방법으로 하셔서 부모가 가지고 있는 비트맵 객체를 참조하는 식으로 하셔야 깔끔할것 같습니다.
Development Guy (70,570 포인트) 님이 2016년 9월 26일 답변
...