Para este problema, o listener Onpagechange é o melhor, mas também terá um pequeno erro que não detectará a hora de início da 0ª posição. Assim que você mudar a página, ela começará a detectar a posição selecionada na página ... Para isso problema encontrei a solução mais fácil
1.Você tem que manter o valor da posição selecionada e então usá-lo ....
2. Caso 1: No início da posição é sempre Zero ....
Caso 2: Suponha que se você definir o item atual significa que você irá definir isso valor para manter a posição
3. Em seguida, faça sua ação com o uso de manter em sua atividade ...
Public int maintain=0;
myViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected( int i) {
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();
}
});