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