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);
}
}
기본 동작 ... 또한 인접한 페이지를로드합니다. –
그러면이 문제를 해결할 수있는 대체 방법이 있습니까? –
실제로 귀하의 요구 사항은 무엇입니까? – Krish