In questo codice, sarebbe questo:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new Frammento();
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
Il suo costruttore è questo:
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
e accetta come parametro FragmentManager.Come un ArrayAdapter viene "abbinato" a una ListView, così questo Adapter andrebbe "abbinato" a un controllo che fa scorrere le schermate...
Ecco: istanzio un Adapter:
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());e quindi lo "azzecco" al ViewPager:
mPager.setAdapter(mPagerAdapter);Ecco la sequenza completa: prendo il ViewPager dal file XML, istanzio un'istanza dell'Adapter e poi la azzecco al ViewPager:
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
Ecco, il codice completo è questo, e funziona:
public class MainActivity extends AppCompatActivity {
private static final int NUM_PAGES = 3;
private ViewPager mPager;
private PagerAdapter mPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
}
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch(position){
case 0:
return new Frammento();
case 1:
return new Frammento2();
case 2:
return new Frammento3();
default:break;
}
return null;
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
}
Nessun commento:
Posta un commento