ViewPager OnItemClickListener

Soy nuevo en Viewpager, y después de leer http://developer.android.com/reference/android/support/v4/view/ViewPager.html de google, no puedo parecer encontrar nada relacionado en viewPager.setOnItemClickListener(new OnItemClickListener() { ¿Tenemos otras opciones para actuar como Item Clicked?

Probando

 viewPager.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent i = new Intent(MainActivity.this, SingleItemView.class); i.putExtra("flag", flag); i.putExtra("position", position); startActivity(i); } }); 

Error: El método setOnItemClickListener (nuevo AdapterView.OnItemClickListener () {}) no está definido para el tipo ViewPager

3 Solutions collect form web for “ViewPager OnItemClickListener”

No hay un método de devolución de llamada OnItemClick para ViewPager. Si desea que los eventos de clic en cada página, tendrá que construir su oyente en el contenido de la página dentro de su adaptador.

algo como esto:

 @Override public Object instantiateItem(View collection, final int pos) { //have to make final so we can see it inside of onClick() LayoutInflater inflater = (LayoutInflater) collection.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View page = inflater.inflate(R.layout.YOUR_PAGE, null); page.setOnClickListener(new OnClickListener(){ public void onClick(View v){ //this will log the page number that was click Log.i("TAG", "This page was clicked: " + pos); } }); ((ViewPager) collection).addView(page, 0); return page; } 

Exactamente lo que necesitas dependerá un poco de lo que estás haciendo dentro de instantiateItem() que no has publicado, así que no puedo darte una respuesta más específica.

Implementé ViewPager personalizado:

 public class ClickableViewPager extends ViewPager { private OnItemClickListener mOnItemClickListener; public ClickableViewPager(Context context) { super(context); setup(); } public ClickableViewPager(Context context, AttributeSet attrs) { super(context, attrs); setup(); } private void setup() { final GestureDetector tapGestureDetector = new GestureDetector(getContext(), new TapGestureListener()); setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { tapGestureDetector.onTouchEvent(event); return false; } }); } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { mOnItemClickListener = onItemClickListener; } public interface OnItemClickListener { void onItemClick(int position); } private class TapGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onSingleTapConfirmed(MotionEvent e) { if(mOnItemClickListener != null) { mOnItemClickListener.onItemClick(getCurrentItem()); } return true; } } } 

Y código para implementar onItemClickListener

 ClickableViewPager viewPager = (ClickableViewPager) findViewById(R.id.viewPager); viewPager.setOnItemClickListener(new ClickableViewPager.OnItemClickListener() { @Override public void onItemClick(int position) { // your code } }); 

No estoy seguro de lo que usted esperaría tener que responder a usted con el oyente anterior.

Hay un setOnClickListener(View.OnClickListener l) que puede utilizar para detectar un toque en el viewPager.

También puede usar onPageScrolled para obtener la entrada del usuario, y onPageSelected y onTabSelected .

 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mActionBar.setSelectedNavigationItem(position); } @Override public void onPageScrollStateChanged(int state) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { Object tag = tab.getTag(); for (int i=0; i<mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } } 
  • ViewPager.setCurrentItem sólo funciona con smoothScroll establecido en true
  • SearchView con múltiples fragmentos usando viewpager en android
  • Página curl con vista pager
  • Viewpager en fragmento no se actualiza al navegar de nuevo a fragmento
  • Cómo obtener una indicación de que el usuario está intentando desplazarse más en un ViewPager
  • Android: la pantalla del fragmento gira
  • Android: ¿Cómo agregar iconos / drawables a la PagerTabStrip de la versión 4 de Android Support Lib?
  • ANDROID: ViewPager con diferentes fragmentos en el método instantiateItem
  • Tratamiento de fragmento y ver paginador: no se puede cambiar la etiqueta de fragmento AND Entrada recursiva para ejecutarPendingTransactions
  • Cómo establecer ViewPager dentro de un fragmento
  • La imagen no se muestra en ImageViewZoom
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.