Android ViewPager Botón Anterior / Siguiente

Bueno, estoy desarrollando una aplicación de Android que utiliza un ViewPager para mostrar páginas.

Dentro de cada página, tengo un conjunto de botones para usar para navegar entre las páginas (además del desplazamiento entre páginas). Estos botones son para "primera página", "página anterior", "página siguiente" y "última página".

Lo que no puedo averiguar cómo hacer es diseñar un mecanismo para habilitar un cambio de página en un clic de botón.

¿Alguien tiene alguna idea?

ETA: Para explicar mejor la configuración, los botones se declaran dentro del diseño de cada página y se infla con el resto del diseño dentro del PagerAdapter. Mi problema es que no puedo referenciar el ViewPager desde el PagerAdapter. O al menos, no puedo pensar en una manera de hacerlo.

Botón:

 Button yourButton = (Button)findViewById(R.id.button1); yourButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { mViewPager.setCurrentItem(getItem(+1), true); //getItem(-1) for previous } }); 

Función:

 private int getItem(int i) { return mViewPager.getCurrentItem() + i; } 

Espero que esto ayude 🙂

 yourButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { yourViewPager.setCurrentItem(page, smoothScroll); } }); 

Terminé este proyecto con este código.

 vPager = (ViewPager) findViewById(R.id.viewpager); View tempView1 = inflater.inflate(R.layout.ani_dialog1, null); firstView = (ImageView) tempView1.findViewById(R.id.ani_dialog_next); views.add(tempView1); firstView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub vPager.setCurrentItem(1, true); } }); 

Actualizar código

 Button preButton = (Button)findViewById(R.id.pre_button); Button nextButton = (Button)findViewById(R.id.next_button); preButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mViewPager.setCurrentItem(mViewPager.getCurrentItem()-1, true); } }); nextButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mViewPager.setCurrentItem(mViewPager.getCurrentItem()+1, true); } }); 
  1)make layout <RelativeLayout android:layout_width="match_parent" android:layout_height="200dp" android:background="@color/white" android:weightSum="1"> <android.support.v4.view.ViewPager android:id="@+id/images_pager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> <ImageView android:id="@+id/img_next" android:layout_width="35dp" android:layout_height="35dp" android:src="@drawable/forward_white" android:background="@color/colorPrimary" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:layout_marginRight="5dp" android:paddingTop="5dp" android:paddingBottom="5dp" /> <ImageView android:id="@+id/img_previous" android:layout_width="35dp" android:layout_height="35dp" android:src="@drawable/back_white" android:background="@color/colorPrimary" android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:layout_alignParentLeft="true" android:paddingTop="5dp" android:paddingBottom="5dp"/> </RelativeLayout> 2) Set custom Adpter CustomViewPagerAdapter custompageradpter; ViewPager mViewPager; mViewPager = (ViewPager)shareImagesDialouge.findViewById(R.id.images_pager); custompageradpter = new CustomViewPagerAdapter(this); mViewPager.setAdapter(custompageradpter); public class CustomViewPagerAdapter extends PagerAdapter { Context mContext; LayoutInflater mLayoutInflater; int[] mResources = { R.drawable.emoji_1, R.drawable.emoji_2, R.drawable.emoji_3, R.drawable.emoji_4, R.drawable.emoji_5, R.drawable.emoji_6 }; public CustomViewPagerAdapter(Context context) { mContext = context; mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return mResources.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == ((LinearLayout) object); } @Override public Object instantiateItem(ViewGroup container, int position) { View itemView = mLayoutInflater.inflate(R.layout.pager_item, container, false); ImageView imageView = (ImageView) itemView.findViewById(R.id.imageView); imageView.setImageResource(mResources[position]); container.addView(itemView); return itemView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((LinearLayout) object); } } 3) for next and previous button case R.id.img_previous: mViewPager.setCurrentItem(getItemofviewpager(-1), true); break; case R.id.img_next: mViewPager.setCurrentItem(getItemofviewpager(+1), true); break; 4) make this function private int getItemofviewpager(int i) { return mViewPager.getCurrentItem() + i; } 
 public void onClick(View v) { int currentItem = mViewPager.getCurrentItem(); mViewPager.setCurrentItem(currentItem+1); //(currentItem-1) } 

Sólo este código en el botón de clic: @Override

getcurrentitem es el elemento real en viewpager , el siguiente elemento es currentItem + 1

  • ¿Cómo navegar desde una página web a una página local en mi aplicación de teléfono?
  • No se puede cambiar el icono del cajón para NavigationDrawer
  • Color de la barra de navegación del cambio del lollipop de Android
  • android: fitsSystemWindows = "true" tiene problemas con el uso de DrawerLayout y modo inmersivo
  • Intermodule (proyectos de biblioteca) en la aplicación android
  • Cambiar la barra de herramientas con cambio de Fragmento como aplicación instagram
  • Cómo implementar la paginación en Android listview
  • Problema al iniciar Google Navigation
  • ¿Hay alguna manera de invocar la navegación desde un navegador móvil?
  • En el gaviota de navegación, haga clic en, nueva vista de lista en el cajón de navegación
  • Android: Viewpager dentro de un fragmento del cajón de navegación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.