일단 처음 질문이라 설명하는 방법이 이상할질 몰라도 친절한 답변 부탁드립니다.
현재 구성이 Activity 안에 MenuFragment 와 ViewPager(ImageFragment, MapFragment) 가 있습니다.
문제는 MenuFragment에는 인터페이스를 만들어 Activity에 값을 줄수는 있었습니다.
@Override
public void onClicked(String mark, String ISBN) {
//ItemMapFragment mapFragment = (ItemMapFragment)getSupportFragmentManager().findFragmentById(R.id.item_pager_fragment);
ItemImageFragment imageFragment = (ItemImageFragment)getSupportFragmentManager().findFragmentById(R.id.item_pager_fragment);
Log.d("Q1","ChatActivity onClick Call");
Log.d("Q1",ISBN);
//mapFragment.mark(mark);
imageFragment.bookISBN(ISBN);
};
여기서 문제가 주석부분을 보면 각각 ViewPager의 id값을 받아 해당 맞는 Fragment를 선택해 그 Fragment의 함수를 호출하여 값을 전달하고 싶은데
this.fragments = new ArrayList<Fragment>();
fragments.add(new ItemImageFragment());
fragments.add(new ItemMapFragment());
pagerAdapter를 이런씩으로 작성해서 위릐 Ativity소스에서 첫번째 추가한 ImageFragment만 값이 제대로 전달 됩니다.
즉 Activity의 주석을 제거하면 MapFragment와 ImageFragment에 각각 String값이 전달 되어야 되는데 되지않습니다.
* 요약 하자면 하나의 Activity에 Fragment와 ViewPager가 존재하며
ViewPager에는 각각 MapFragment와 ImageFragment가 존재합니다.
여기서 Fragment에서 보내는 두 개의 String값을 MapFragment와 ImageFragment에 어떻게 전달할지 입니다.
* 현재 pagerAdapter에서 getItem() 함수로 Fragment를 불러와서 적용하는 시도를 하고 있는데
ItemImageFragment mapFragment2 = (ItemImageFragment)pageAdapter.getItem(1);
딱히 적용이 안되는 군요... 어떻게 해야 될까요???