我想在我的activity
中运行类似照片显示的东西。我将片段加载到ViewPager
,然后模拟切换视图。
Runnable runnable = new Runnable(){
@Override
public void run() {
pager.setCurrentItem(0);
while(true){
try {
Thread.sleep(Settings.showDelay*1000);
if(pager.getCurrentItem()==photos.size()-1){
pager.setCurrentItem(0);
Thread.sleep(Settings.showDelay*1000);
}else
pager.setCurrentItem(pager.getCurrentItem()+1, true);
} catch (InterruptedException e) {
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
我把它放在我的onCreate
方法中,对于 3 张图像,它可以完美运行,但对于 4 张或更多图像,它:
java.lang.IllegalStateException: Must be called from main thread of process
尝试下面的代码来切换视图寻呼机。我已经用过它,它对我来说就像魅力一样。
Timer timer = new Timer();
public void SwitchPage(int seconds) {
timer = new Timer(); // At this line a new Thread will be created
timer.schedule(new SwitchPageTask(), 6000, seconds * 1000); // delay in milliseconds
}
class SwitchPageTask extends TimerTask {
@Override
public void run() {
// As the TimerTask run on a separate thread from UI thread we have
// to call runOnUiThread to do work on UI thread.
runOnUiThread(new Runnable() {
public void run() {
if(pager.getCurrentItem()==photos.size()-1)
{
pager.setCurrentItem(0);
}else
{pager.setCurrentItem(pager.getCurrentItem() + 1);}
}
});
}
}
只需通过几秒钟即可切换查看页。它将继续运行并切换到下一个项目。
SwitchPage(6); //it will switch the view on every 6 seconds.