Android view pager change pages automatically after a few seconds

android, android-sdk-2.1, android-viewpager

Solution

Use javautil timer and set one up and at the end of timer you can use

class UpdateTimeTask extends TimerTask {
   public void run() {
    //Code for the viewPager to change view
  }
 }


 // Code to schedule the timer
 timer = new Timer();
 timer.schedule(new UpdateTimeTask(), 100, 200);

Hope this helps, use the android docs for exact API calls

<ViewPager>.setCurrentitem(i++%<MaxViews>)

Problem

I have used android view pager to display images and text now what i want is that if a user is not changing the images then it should start to change the images automatically after a few seconds and when the user again starts using his finger then the images should not change automatically? I tried to use the handler to create a delay but it did not worked for me? Please help anyone ``` public class SimpleImageViewerActivity extends Activity implements ViewPager.OnPageChangeListener{ private Handler handler; ViewPager myPager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.imageslideshow); MyPagerAdapter adapter = new MyPagerAdapter(); myPager = (ViewPager) findViewById(R.id.slideShowPager); myPager.setAdapter(adapter); myPager.setCurrentItem(0); handler = new Handler(); myPager.setOnPageChangeListener(this); } private class MyPagerAdapter extends PagerAdapter { public int getCount() { return 5; } public Object instantiateItem(View collection, int position) { LayoutInflater inflater = (LayoutInflater) collection.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); int resId = 0; switch (position) { case 0: resId = R.layout.farleft; break; case 1: resId = R.layout.left; break; case 2: resId = R.layout.middle; break; case 3: resId = R.layout.right; break; case 4: resId = R.layout.farright; break; } View view = inflater.inflate(resId, null); ((ViewPager) collection).addView(view, 0); return view; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView((View) arg2); } @Override public void finishUpdate(View arg0) { // TODO Auto-generated method stub } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == ((View) arg1); } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { // TODO Auto-generated method stub } @Override public Parcelable saveState() { // TODO Auto-generated method stub return null; } @Override public void startUpdate(View arg0) { // TODO Auto-generated method stub } } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub updateUI(arg2); } @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub //updateUI(arg0); } public void onNothingSelected(AdapterView<?> adapterView) { final int i =0; adapterView.postDelayed(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub updateUI(i); } }, 5000); Toast.makeText(this, "In nothing selected method",Toast.LENGTH_SHORT).show(); } private void updateUI(final int fi) { /* handler.post(new Runnable() { public void run() { gallery.setSelection(i); viewPager.setCurrentItem(i); //textView.setText("Photo #" + i); } });*/ handler.postDelayed(new Runnable() { public void run() { int i=fi; int j = i; myPager.setCurrentItem(j++); System.out.println("Hello"); } },1000); } } ```

Original source

Related problems