Я хочу использовать 6 фрагментов (1,2,3,4,5,6) в viewpager, используя пользовательский адаптер.
также я использую android.support.v4.app.
но метод getItem () возвращает неправильный индекс.
например, покажите второй фрагмент при первой загрузке myApp.
и многократное пролистывание вправо,
2 -> 3-> 4 -> 5-> 6-> 6
и многократное перелистывание влево,
6 -> 4 -> 3 -> 2 -> 1 -> 1
и проводя вправо неоднократно,
1 -> 3 -> 4-> 5-> 6-> 6
.... ПОЖАЛУЙСТА, ПОМОГИТЕ МНЕ ... я не знаю почему.....
Код источника здесь.
mainAcitivity.java
//viewPager
viewPager = (ViewPager)findViewById(R.id.viewPager);
final MyViewPagerAdapter adapter = new MyViewPagerAdapter(getSupportFragmentManager());
getFragmentManager().beginTransaction().commitNow();
viewPager.setAdapter(adapter);
MyViewPagerAdapter
public class MyViewPagerAdapter extends FragmentStatePagerAdapter {
public Fragment Fragment1;
public Fragment Fragment2;
public Fragment Fragment3;
public Fragment Fragment4;
public Fragment Fragment5;
public Fragment Fragment6;
String [] output = new String[5];
public MyViewPagerAdapter(FragmentManager fm) {
super(fm);
fm.executePendingTransactions();
}
@Override
public Fragment getItem(int arg0) {
if(arg0==0){
return new Fragment1();
} else if(arg0==1){
return new Fragment2();
} else if(arg0==2){
return new Fragment3();
} else if(arg0==3){
return new Fragment4();
} else if(arg0==4){
return new Fragment5();
} else if(arg0==5){
return new Fragment6();
}
return new Fragment1();
}
@Override
public int getCount() {
return 6;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
Фрагмент1
public class Fragment1 extends Fragment {
public Fragment1(){
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_fragment1, container, false);
}
public void onStart() {
super.onStart();
}
}
Фрагмент2, 3, 4, 5, 6 То же