2015-01-02 2 views
2

android에서 스 와이프 응용 프로그램을 수행하고 있습니다. 하지만 getItem() 메서드 이 처음에 두 번 호출하는 문제가 하나 있습니다. 이 문제를 해결하려고했지만 해결책을 찾지 못했습니다. 해결책을 찾으려면 도와주세요. 아래에있는 내 코드 스 니펫 : -ViewPager의 getItem() 두 번 호출 된 단편

공용 클래스 DisplayEMIBOFQuestionActivity는 FragmentActivity {

private ViewPager pager; 
private int savePosition; 
private Context context; 
private String fragTag1; 
private String fragTag2; 

    /* 
* (non-Javadoc) 
* 
* @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle) 
*/ 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    super.setContentView(R.layout.common_emi_bof_display_question); 
    context = getLayoutInflater().getContext();  
    if(Helper.isTablet) 
    { 
     this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    }else 
    { 
     this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 
    // Initialise the pager 
    pager = (ViewPager) findViewById(R.id.viewpager); 
    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager())); 

    /** 
    * on swiping the viewpager make respective tab selected 
    * */ 
    pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

     public void onPageSelected(int position) {} 

     public void onPageScrolled(int position, float arg1, int arg2) {} 

     public void onPageScrollStateChanged(int arg0) { 


     } 

    });  
      getPager().setPageTransformer(true, new SwipeAnimation()); 

} 
public ViewPager getPager() { 
    return pager; 
} 
public void setPager(ViewPager pager) { 
    this.pager = pager; 
} 
public String getFragTag1() { 
    return fragTag1; 
} 
public void setFragTag1(String fragTag1) { 
    this.fragTag1 = fragTag1; 
} 
public String getFragTag2() { 
    return fragTag2; 
} 
public void setFragTag2(String fragTag2) { 
    this.fragTag2 = fragTag2; 
} 



public class MyPagerAdapter extends FragmentPagerAdapter { 

    public MyPagerAdapter(FragmentManager fragmentManager) { 
     super(fragmentManager); 
    } 

    @Override 
    public Fragment getItem(int pos) { 
     System.out.println("************** "+pos); 


     Helper.currentQuestion = pos; 
     if(Helper.randomQuestionList.get(pos).getSubQuestionType().equals(QuestionType.BOF.toString())) 


     return new DisplayBOFQuestionFragment(); 
     else 

      return new DisplayEMIQuestionFragment(); 

    } 

    @Override 
    public int getCount() { 

     return Helper.NUMBEROFQUESTIONS; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return super.getPageTitle(position); 
    } 
} 

public void setPagerPosition(int pos){  
    pager.setCurrentItem(pos); 
} 

}

+0

기본 동작 ... 또한 인접한 페이지를로드합니다. –

+0

그러면이 문제를 해결할 수있는 대체 방법이 있습니까? –

+0

실제로 귀하의 요구 사항은 무엇입니까? – Krish

답변

0

이 도착 한 조각과 두 개의 인접한 (여기 당신이 하나를 가지고), 그래서 처음에 TAB1을 얻을 것이다 연장 Tab2로 스 와이프 할 때 Tab2를 선택하면 Tab2에 대한 getItem이 호출되어 스 와이프를 준비합니다.

관련 문제