android viewpager中的幻灯片放映?

android viewpager中的幻灯片放映?,android,android-viewpager,Android,Android Viewpager,我对android viewpager幻灯片有问题。我想在最短时间段后显示viewpager布局。这是我的代码示例。 我的主课: public class MainActivity extends Activity { private ViewPager mViewPager; private SwipeAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) {

我对android viewpager幻灯片有问题。我想在最短时间段后显示viewpager布局。这是我的代码示例。 我的主课:

public class MainActivity extends Activity {
    private ViewPager mViewPager;
    private SwipeAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mViewPager = (ViewPager) findViewById(R.id.pager);
        // set the adapter
        adapter = new SwipeAdapter(MainActivity.this);
        mViewPager.setAdapter(adapter);

        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

}
我的适配器类:

public class SwipeAdapter extends PagerAdapter {

    private LayoutInflater mInflater;
    private static int[] mLayouts = { R.layout.view_layout1,
            R.layout.view_layout2, R.layout.view_layout3, R.layout.view_layout4 };

    SwipeAdapter(Context context) {
        mInflater = LayoutInflater.from(context);
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ViewGroup pageView = (ViewGroup) mInflater.inflate(mLayouts[position],
                container, false);
        container.addView(pageView);
        getItemPosition(pageView);
        return pageView;
    }

    @Override
    public int getCount() {
        return mLayouts.length;
    }
    @Override
    public boolean isViewFromObject(View view, Object obj) {
        return view == obj;
    }
}

假设我想使viewpager布局在10秒后自动滑动。这怎么可能呢

使用Handler并发送[Empty]MessageDelayed/postdayed,并调用ViewPager上的setCurrentItem

使其自动滑动。这里有一些代码

private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
    public void run() {
            if( position >= 4){
                position = 0;
            }else{
                position = position+1;
            }
            toBarPager.setCurrentItem(position, true);
            handler.postDelayed(runnable, 10000);
    }
};
不要忘记删除回调
onPause()

另外,不要忘记重新运行
onResume()


在哪里获得职位页面RMOVEDE对于您的案例来说没有必要,我编辑了我的代码。对不起,混淆了。而且位置总是从零开始,编辑位置>=3。谢谢您的代码运行良好。我们必须将此句柄放在主类中的什么位置?如果是,那么使用哪种方法如果用户在视图寻呼机中使用滑动手势滑动当前图像,那么此时如何处理自动幻灯片放映位置您可以检查此链接以查看自动幻灯片
@Override
public void onPause() {
    super.onPause();
    if (handler!= null) {
        handler.removeCallbacks(runnable);
    }
}
@Override
public void onResume() {
    super.onResume();  // Always call the superclass method first
    handler.postDelayed(runnable, 10000);
}