Я использую View Pager в своем приложении. Мне нужно запускать смену страницы каждые 1 мин. Я знаю, что если пользователь выполняет поиск, происходит смена страницы. Но если нам нужно вызвать его, есть ли для него API.Как изменить страницу в ViewPager Android?
1
A
ответ
1
Как изменить страницу в ViewPager Android?
Используйте программный код ViewPager.setCurrentItem(int item) для изменения страниц ViewPager.
Где item
- это индекс страницы, который хотите установить как текущий элемент в ViewPager.
1
private int mInterval = 5000; // 5 seconds by default, can be changed later
private Handler mHandler;
@Override
protected void onCreate(Bundle bundle) {
...
mHandler = new Handler();
startRepeatingTask();
}
Runnable mStatusChecker = new Runnable() {
@Override
public void run() {
updatePage(); //this function can change value of mInterval.
mHandler.postDelayed(mStatusChecker, mInterval);
}
};
void startRepeatingTask() {
mStatusChecker.run();
}
void stopRepeatingTask() {
mHandler.removeCallbacks(mStatusChecker);
}
private void updatePage(){
viewPager.setCurrentItem(pageno)
}
0
Handler handler = new Handler();
handler.post(new Updater());
class Updater implements Runnable {
public void run() {
mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1);
if (mViewPager.getAdapter().getCount() - 1 > mViewPager.getCurrentItem()){
handler.postDelayed(new Updater, 60000);
}
}
}
0
Вы можете использовать CountDownTimer
сделать эту easily.Change страницу после каждого 60с, используя ниже примере
class MyTimer extends CountDownTimer{
public MyTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long l) {
}
@Override
public void onFinish() {
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
myTimer.start();
}
MyTimer myTimer = new MyTimer(1000*60, 1000);
myTimer.start();