1

3 개의 탭이 있지만 하나의 조각이 있습니다. 3 개의 탭에 대해 하나의 조각을 사용할 수 있습니까? 여러 탭에 대해 동일한 조각 반환

현재 내 FragmentPagerAdapter이 있습니다

@Override 
     public Fragment getItem(int position) { 
      if (position == 0) { 
       return new FragmentTwo(region,"1"); 
      } else if(position == 1){ 
       return new FragmentTwo(region,"2"); 
      } 
      return new FragmentTwo(region,"3"); 
     } 

그러나 하나 개의 탭에 모든 데이터를 보여주는 ..

내 코드를 편집하지만 여전히 하나 개의 탭에있는 모든 데이터를 가져 오는했습니다. 현재 :

@Override 
     public Fragment getItem(int position) { 
      return FragmentTwo.newInstance(region, position); 
     } 

& &

내 FragmentPagerAdapter 내가에서 getSupportFragmentManager를 호출하고 생성을위한
static FragmentTwo newInstance(String region,int position) { 
     FragmentTwo frag=new FragmentTwo(); 
     Bundle args=new Bundle(); 
     args.putInt("KEY_POSITION", position); 
     args.putString("REGION", region); 
     if(position == 0){ 
      args.putString("TYPE","A"); 
     } 
     else if(position == 0){ 
      args.putString("TYPE","B"); 
     } 
     else{ 
      args.putString("TYPE","C"); 
     } 
     frag.setArguments(args); 

     return(frag); 
    } 

();

+1

당신은 모든 탭에 대해 동일한 조각 클래스를 사용하실 수 있습니다 :

는 관련이 게시물을 살펴보십시오. 여기에 내 샘플 중 하나가 있습니다 : https://github.com/commonsguy/cw-omnibus/tree/master/ViewPager/Fragments – CommonsWare

+0

나는 조각이 아니라 동일한 Fragment 클래스 인스턴스를 사용하는 방법이라고 생각합니다. 수업. – teamnorge

답변

1

예, FragmentTwo의 인스턴스를 만들어 필드/변수에 저장 한 다음 함수에서 반환 데이터로 사용할 수 있습니다.

주목할 점은 단편에 매개 변수가있는 생성자를 사용해서는 안된다는 것입니다. 인수와 함께 번들을 사용하십시오. 매개 변수가있는 생성자는 Fragments에 문제를 일으킬 수 있습니다. Best practice for instantiating a new Android Fragment

+0

구현했지만 여전히 하나의 탭에 모든 데이터를 가져 왔습니다. 편집을 확인하십시오. 고마워 :) – David

+1

당신은 아직 조각의 새 인스턴스를 만드는 중입니다 ... 당신은 여전히 ​​FragmentTwo frag = new FragmentTwo()를 호출하고 있습니다. 새로운 조각을 만듭니다. 단편을 단 한 번만 만들고 instace를 변수 (예 : private FragmentTwo mFragment)에 저장해야합니다. 이 인스턴스를 반환합니다. 그리고 당신의 데이터를 리셋하는 public 메소드를 생성하십시오. – JanBo

관련 문제