per questo problema Onpagechange ascoltatore è il migliore, ma avrà anche un piccolo errore che è non lo farà d etificare l'ora di inizio della posizione 0. Una volta modificata la pagina inizierà a rilevare la posizione selezionata della pagina ... Per questo problema, la soluzione più semplice
1.Si deve mantenere il valore di posizione selezionato quindi usalo ....
2. Caso 1: All'inizio della posizione è sempre Zero ....
Caso 2: Supponiamo che se si imposta la voce corrente si intende che imposterà quel valore nella posizione di mantenimento
3 .Quindi fai la tua azione con l'uso di quello mantenere nella vostra attività ...
Public int maintain=0;
myViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
//Toast.makeText(MyActivity.this, i+" Is Selected "+data.size(), Toast.LENGTH_SHORT).show();
}
@Override
public void onPageSelected(int i) {
// here you will get the position of selected page
maintain = i;
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
updateButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MyActivity.this, i+" Is Selected "+data.size(), Toast.LENGTH_SHORT).show();
data.set(maintain, "Replaced "+maintain);
myViewPager.getAdapter().notifyDataSetChanged();
}
});
fonte
2014-01-07 04:05:00
Grazie un sacco di uomini ... funziona ... Hai mai lavorato su ViewPager? –
solo un pensiero currentPage dovrebbe essere statico ... – Necronet
@Necronet no, non dovrebbe. La classe PageListener dovrebbe essere una classe interna, non una classe nidificata. – dcow