我以递归方式定期使用mViewPager.setCurrentItem(position);
以编程方式更改Viewpager项目。下面的代码工作正常。请告诉我,这是实现此目的的最佳方式还是我的代码有任何问题。提前致谢。
ViewPager mViewPager ;
mViewPager = (ViewPager) findViewById(R.id.viewpager);
Timer timer = new Timer();
timer.schedule(new UpdateTimeTask(backgroundimages.length), 1, 5000);
private class UpdateTimeTask extends TimerTask {
int mLength = 0;
public UpdateTimeTask(final int length) {
this.mLength = length;
}
public void run() {
mViewPager.post(new Runnable() {
@Override
public void run() {
if (mViewPager.getCurrentItem()+1 < mLength) {
Updateviewpager(mViewPager.getCurrentItem() + 1);
} else {
Updateviewpager(0);
}
}
});
}
}
public void Updateviewpager(int position) {
mViewPager.setCurrentItem(position);
}
答案 0 :(得分:0)
您可以使用CountDownTimer
即
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}开始();
这样你就不会运行任何额外的线程了。