title: How can I make viewpager loop?
body: <p>I want my ViewPager implementation to cycle between views instead of stopping at the last view. For example, if I have 3 views to display via a ViewPager, it should return back to the first View after the third View on fling instead of stopping at that third view. I want it to return to the first page/view when the user flings forward on the last page</p>
  
  <p>Loop example;</p>
  
  <p>A,B,C,D &lt;--- A,B,C,D ---> A,B,C,D</p>
  
  <p>Thanks a lot,</p>
  
  <p>Mypageradapter;</p>
  
  <pre><code>package com.example.pictures;
  
  import android.content.Context;
  import android.media.AudioManager;
  import android.os.Parcelable;
  import android.support.v4.view.PagerAdapter;
  import android.support.v4.view.ViewPager;
  import android.view.LayoutInflater;
  import android.view.View;
  
  
  public class MyPagerAdapter extends  PagerAdapter{
  
  public int getCount() {
      return 6;
  }
  
  public Object instantiateItem(View collection, int position) {
  
      View view=null;
  
      LayoutInflater inflater = (LayoutInflater) collection.getContext()
              .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  
      int resId = 0;
      switch (position) {
      case 0:
          resId = R.layout.picture1;
          view = inflater.inflate(resId, null);         
          break;
      case 1:
          resId = R.layout.picture2;   
          view = inflater.inflate(resId, null);
          break;
      case 2:
          resId = R.layout.picture3;
          view = inflater.inflate(resId, null);
          break;
      case 3:
          resId = R.layout.picture4;
          view = inflater.inflate(resId, null);
          break;
      case 4:
          resId = R.layout.picture5;
          view = inflater.inflate(resId, null);   
          break;
      case 5:
          resId = R.layout.picture6;
          view = inflater.inflate(resId, null);
          break;
      }
  
      ((ViewPager) collection).addView(view, 0);
  
      return view;
  }
  
  @SuppressWarnings("unused")
  private Context getApplicationContext() {
      // TODO Auto-generated method stub
      return null;
  }
  
  
  private void setVolumeControlStream(int streamMusic) {
      // TODO Auto-generated method stub
  
  }
  
  
  @SuppressWarnings("unused")
  private Context getBaseContext() {
      // TODO Auto-generated method stub
      return null;
  }
  
  
  @SuppressWarnings("unused")
  private PagerAdapter findViewById(int myfivepanelpager) {
      // TODO Auto-generated method stub
      return null;
  }
  
  @Override
  public void destroyItem(View arg0, int arg1, Object arg2) {
      ((ViewPager) arg0).removeView((View) arg2);
  }
  
  @Override
  public boolean isViewFromObject(View arg0, Object arg1) {
      return arg0 == ((View) arg1);
  
  }
  
  @Override
  public Parcelable saveState() {
      return null;
  }
  
  public static Integer getItem(int position) {
      // TODO Auto-generated method stub
      return null;
  }
  
  }
  </code></pre>
  
  <p>OnPageChangeListener;</p>
  
  <pre><code>package com.example.pictures;
  
  import android.app.Activity;
  import android.content.Intent;
  import android.os.Bundle;
  import android.support.v4.view.ViewPager;
  import android.support.v4.view.ViewPager.OnPageChangeListener;
  import android.view.View;
  import android.widget.Button;
  import android.widget.Toast;
  
  
  public class Pictures extends Activity implements OnPageChangeListener{
  SoundManager snd; 
  int sound1,sound2,sound3;
  View view=null;
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.picturespage);
  
   MyPagerAdapter adapter = new MyPagerAdapter();
   ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
   myPager.setAdapter(adapter);
   myPager.setCurrentItem(0); 
   myPager.setOnPageChangeListener(this);
  snd = new SoundManager(this);
   sound1 = snd.load(R.raw.sound1);
   sound2 = snd.load(R.raw.sound2);
   sound3 = snd.load(R.raw.sound3);
  
  }
  public void onPageScrollStateChanged(int arg0) {
      // TODO Auto-generated method stub
  
  }
  
  public void onPageScrolled(int arg0, float arg1, int arg2) {
      // TODO Auto-generated method stub
  
  }
  
  public void onPageSelected(int position) {
      // TODO Auto-generated method stub
  
      switch (position) {
      case 0:
              snd.play(sound1);
          break;
      case 1:
          snd.play(sound2);
          break;
      case 2:
              snd.play(sound3);
          break;
      case 3:
        Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
          break;
      case 4:
         Toast.makeText(this, "2", Toast.LENGTH_SHORT).show();
          break;
      case 5:
          Toast.makeText(this, "3", Toast.LENGTH_SHORT).show();
          break;
      }
  }
  };
  </code></pre>