私のログでは、現在の位置が同じ値に対して 2 回呼び出され、タイマーにほぼ 2 倍の時間がかかります。NUM_PAGES は、実際には配列リストの最大サイズを占めています。
NUM_PAGES = detailsArrayList.size();
// Auto start of viewpager
final Handler handler = new Handler();
final Runnable Update = new Runnable() {
public void run() {
if (currentPage == NUM_PAGES) {
currentPage = 0;
}
Log.d(TAG, "Current Page: " + currentPage);
mPager.setCurrentItem(currentPage++, false);
}
};
final Timer swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(Update);
}
}, 5000, 5000);
// Pager listener over indicator
indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
currentPage = position;
}
@Override
public void onPageScrolled(int pos, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int pos) {
}
});