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); } } } 
  • Desplazar la vista web horizontalmente dentro de un ViewPager
  • SetCurrentItem en ViewPager está causando excepción
  • Android ViewPager enfoca automáticamente WebView
  • ViewPager PagerAdapter no actualizar la vista
  • Toque los Listeners para las vistas de padres y niños
  • Cómo volver a crear todos los fragmentos en ViewPager:
  • Android setBackgroundResource causa excepción de la memoria
  • ViewPager dentro del fragmento
  • Efecto de Cover Flow con ViewPager
  • Reemplazar la posición de los fragmentos dentro de ViewPager
  • Aplicar fuerza cerrar en viewPager.setAdapter (adaptador)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.