2012-07-13 5 views
1

제목을 쓰는 것이 까다로운 일이었습니다. 현재 내가하는 일은 하나의 Fragment 클래스를 재사용하여 ViewPager에서 ListFragments를 여러 개 만드는 것입니다. ListFragments의 레이아웃은 모두 동일하므로 하나의 레이아웃과 하나의 Fragment를 기본으로 사용하면 사운드 선택과 같이 보입니다. 그러나 각 조각의보기에 액세스하여 제목, 이름 및 겹침 머리글과 같은 일부 조각 단위 값을 설정할 수 있기를 바랍니다. 필자는이 문제가 있으며 Fragment의 onViewCreated-method를 재정 의하여 TextView에 액세스하려고 할 때마다 업데이트되는 유일한 단편이 체인의 첫 번째 것 인 것으로 보입니다.ViewPager에서 여러 조각 인스턴스화에서보기에 액세스

private void initPager() { 
    mFragments = new Vector<Fragment>(); 
    int[] listIds = 3; 
    for(int i = 0; i < listIds.length; i++) { 
     Fragment fragment = new ListsFragment(listIds[i]); 
     mFragments.add(fragment); 
    } 

    FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    for(int i = 0; i < mFragments.size(); i++) { 
     fragmentTransaction.add(R.id.viewpager, mFragments.get(i)); 
    } 
    fragmentTransaction.commit(); 

    mPagerAdapter = new ListsPagerAdapter(fragmentManager, mFragments); 
    mPager = (ViewPager) super.findViewById(R.id.viewpager); 
    mPager.setAdapter(mPagerAdapter); 
} 

조각 onViewCreated() 코드는 다음과 같습니다 :

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    TextView textListTitle = (TextView) getActivity().findViewById(R.id.text_list_title); 
      String title = "test"; 
    textListTitle.setText(listTitle); 
} 

로그를보고 나는 각각의 조각이 볼

이제 내가 무엇을 인스턴스화하고 조각을 연결하는 일은 이것이다 각각의 라이프 사이클을 거치면서 분리되어 인스턴스화됩니다. 그러나 "테스트"스트링을 얻는 단 하나의 단편이 첫 번째 것입니다.

무엇이 누락 되었습니까?

+0

여기서'Vector'를 사용할 이유가 없습니다 ... 단지'ArrayList'를 사용하십시오 :) –

+0

또한 ... 컴파일되지 않습니다 :'int [] listIds = 3;'... 그래서 솔직히 말해서 전혀 모르겠다. lol –

답변

0

FragmentFragmentPagerAdapter에 인스턴스화해야합니다.

+0

완전히 맞다. 나는 이것을 적절하게 처리하기 위해 FragmentPagerAdapter를 포함시켰다. –

관련 문제