Für dieses Problem ist der Onpagechange-Listener der beste. Er hat jedoch auch einen kleinen Fehler: Er erkennt die Startzeit der 0. Position nicht. Sobald Sie die Seite wechseln, erkennt er die ausgewählte Seite ... Hierfür Problem Ich finde die einfachste Lösung
1. Sie müssen den ausgewählten Positionswert beibehalten und dann verwenden ....
2. Fall 1: Zu Beginn der Position ist immer Null ....
Fall 2: Angenommen, wenn Sie das aktuelle Element festlegen, bedeutet dies, dass Sie dies festlegen Wert in Position halten
3. Dann tun Sie Ihre Aktion mit der Verwendung dieser in Ihrer Aktivität beibehalten ...
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();
}
});