El paginador de vista de Android cambia las páginas automáticamente después de unos segundos

He utilizado el buscapersonas de vista de Android para mostrar imágenes y texto ahora lo que quiero es que si un usuario no está cambiando las imágenes, entonces debería comenzar a cambiar las imágenes automáticamente después de unos segundos y cuando el usuario vuelve a empezar a usar su dedo, las imágenes No debe cambiar automáticamente?

He intentado utilizar el controlador para crear un retraso, pero no funcionó para mí?

Por favor, ayude a alguien

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); } } 

Utilice el temporizador javautil y configure uno y al final del temporizador puede utilizar

 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); 

Espero que esto ayude, use los documentos de Android para llamadas de API exactas

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

En lo que respecta a la actualización de la interfaz de usuario se puede hacer a través de manejador, así que llamar a un controlador dentro de la clase timertask, puede hacer algo como esto:

 Timer timer=null; static int time_tomove = 0; class UpdateTimeTask extends TimerTask { public void run() { //Code for the viewPager to change view System.out.println("The value of the time_tomove "); time_tomove++; Message msg = handler_timer.obtainMessage(); Bundle b = new Bundle(); b.putInt("time", time_tomove); msg.setData(b); handler_timer.sendMessage(msg); } } public static Handler handler_timer = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); magazineHolder.setCurrentItem(time_tomove); } }; 

Después de hacer esto, puede llamar a las siguientes dos líneas dentro de su método onresume o oncreate ()

 timer = new Timer(); timer.schedule(new UpdateTimeTask(), 100, 2000); 
  • Android - Reajustes de desplazamiento de ViewPager
  • Deslizar entre las actividades de Android como con ViewPager
  • ViewPager no actualiza el tamaño de fuente textview instantáneamente
  • No se puede cambiar la etiqueta del fragmento
  • Fragmentos en ViewPager se recrean
  • ViewPager con múltiples instancias de fragmentos de la misma clase
  • Cómo obtener una indicación de que el usuario está intentando desplazarse más en un ViewPager
  • Reemplazar fragmento con otro fragmento dentro de ViewPager
  • Diferenciación entre desplazamiento de usuario y cambio de página de programación en ViewPager
  • Error "java.lang.IllegalStateException: No se puede cambiar la etiqueta de fragmento" cuando se utiliza ViewPager # setCurrentItem ()
  • Android ViewPager cambia automáticamente la página
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.