Ho avuto questo problema e non ho potuto ottenere il metodo getCurrentItem()
.
Ho finito per ottenere la posizione dal ViewPager
e non dal PageAdapter
. Il metodo onPageSelected(int currentPage)
sta ottenendo la pagina attualmente visualizzata.
//custom PageAdapter implementation
mAdapter = new AwesomePagerAdapter();
//Our custom view pager that extends from ViewPager
mPager = (CustomViewPager) findViewById(R.id.preview_gallery);
mPager.setAdapter(mAdapter);
// get the item that we should be showing from the intent
mCurrentPage = extra.getInt("currentIndex");
// show the item the user picked
mPager.setCurrentItem(mCurrentPage);
// listen for page changes so we can track the current index
mPager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int arg0) {
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
public void onPageSelected(int currentPage) {
//currentPage is the position that is currently displayed.
}
});
Farlo nel PageAdaper
non ha funzionato per me, come io voglio precaricare le immagini che non sono visibili. La posizione passata instantiateItem(View collection, int position)
di PageAdapter` è la posizione dell'elemento successivo inizializzato. Questo non ha nulla a che fare con l'oggetto che viene visualizzato.
Sto utilizzando il pacchetto di compatibilità e estende PagerAdapter, non esiste neanche il metodo getCurrentItem. Come posso farne uno? http://pastebin.com/LabjNvqL – CQM
No, il oncreate viene eseguito solo all'inizio quando la pagina è 0, lo usa da qualche altra parte quando la pagina non è 0 e restituirà il numero di pagina –
@CQM che stai utilizzando un VIewPager e stai impostando il suo adattatore per quella classe, mostrami la classe in cui hai un oncreate –