ViewPager.setCurrentItem(0)报错

来源:互联网 发布:软件面试题目 编辑:程序博客网 时间:2024/05/29 05:52

原本代码:

private Runnable advPlay = new Runnable() {@Overridepublic void run() {int num = advViewPager.getChildCount();if(num > 0){if(1 == num){//advViewPager.setCurrentItem(0);}else{int currentIndex = advViewPager.getCurrentItem();if((num -1) != currentIndex){    advViewPager.setCurrentItem(advViewPager.getCurrentItem() + 1); }else{    //最后一张广告     advViewPager.setCurrentItem(0); }handler.postDelayed(advPlay, ADVWAITTIME);}}}};

这样在进行图片轮播的时候,到advViewPager.setCurrentItem(0)就出现程序卡住,然后出现ANR;

后面看了下别人的代码,改成这样:

private Runnable advPlay = new Runnable() {@Overridepublic void run() {int num = advViewPager.getChildCount();if(num > 0){if(1 == num){//advViewPager.setCurrentItem(0);}else{int currentIndex = advViewPager.getCurrentItem();//if((num -1) != currentIndex){    advViewPager.setCurrentItem(advViewPager.getCurrentItem() + 1);// }else{    //最后一张广告//     advViewPager.setCurrentItem(0);// }handler.postDelayed(advPlay, ADVWAITTIME);}}}};

说明:注释相关代码后,发现就可以了。

具体原因不明。


0 0
原创粉丝点击