SetOnItemClickListener () no funciona en Custom ListView @ Android

He implementado un ListView personalizado extendiendo LinearLayout para cada fila. Cada fila tiene una pequeña miniatura, un texto y una check box . La list view se despliega correctamente y puedo desplazarme por ella sin ningún problema.

Pero el ListView no parece responder a la setOnItemClickListener() en absoluto, Así que tuve que encontrar una solución al establecer el oyente de clics en el getView() del texto dentro de cada fila que obviamente es crear problemas cuando estoy tratando de reutilizar El adapter . ¿Alguien tiene una solución?

Prueba esto
Para ListView,

 final ListView list = (ListView) findViewById(R.id.list); list.setItemsCanFocus(false); 

También, cerciórese de que para CheckBox dentro del artículo de la lista defina focusable false

 android:focusable="false" android:focusableInTouchMode="false" 

Vieja respuesta: escribí en el post anterior aquí

 android:focusable="false" android:clickable="false" 

No ayudará cuando ImageButton esté en la visión de encargo. Uno debe utilizar button.setFocusable(false); Durante el tiempo de ejecución (desde el código fuente de java)

Edit: Existe una solución aún más elegante. Trate de añadir android:descendantFocusability="blocksDescendants" en el diseño raíz del elemento de lista. Esto hará que los clics onListItem sean posibles y por separado u puede manejar clics Button o ImageButton

Para un ListView donde se establecen las vistas de elementos a CheckBox

 android:focusable="false" android:clickable="false" 

http://code.google.com/p/android/issues/detail?id=3414

¿Has creado algún ViewHolder en tu clase de adaptador extendida? Si es así, entonces haga una instancia de su marcador de posición en el setOnItemClickListener () algo puede funcionar así.

 @Override protected void onListItemClick(ListView l, View v, int position, long id) { View rowView = v; if (rowView == null) { LayoutInflater inflater = this.getLayoutInflater(); // GET INFLATE OF YOUR LAYOUT. rowView = inflater.inflate(R.layout.projectpeopledescrate, null); // CUSTOM ViewHolder Class Created in Adapter. // name,title,comment are my components on the same listview clicked item. PPDViewHolder viewHolder = new PPDViewHolder(); viewHolder.name = (TextView) rowView.findViewById(R.id.ppeopledescrvname); viewHolder.title = (TextView) rowView.findViewById(R.id.ppeopledescrvtime); viewHolder.comment = (TextView) rowView.findViewById(R.id.ppeoplervcomment); viewHolder.hiddenLayout = (RelativeLayout) rowView.findViewById(R.id.hiddenCommentPanel); rowView.setTag(viewHolder); } // ANOTHER object instance to apply new changes. PPDViewHolder holder = (PPDViewHolder) rowView.getTag(); // I've setted up visibility over the components. You can set your onClickListener over your buttons. holder.comment.setVisibility(View.GONE); holder.name.setVisibility(View.GONE); holder.title.setVisibility(View.GONE); holder.hiddenLayout.setVisibility(View.VISIBLE); holder.hiddenLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.MATCH_PARENT)); holder.hiddenLayout.bringToFront(); } 

Espero que quieras algo igual. ¡Buena suerte!

Tengo este código

 this.mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Log.v(TAG,"loul"); } }); 

Pero no funcionó

Así que he justo poner un onItemSelectedListener bajo y funciona Oo:

 this.mListView.setItemsCanFocus(false); this.mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { Log.v(TAG,"loul"); } }); //listener for nothing but it allow OnItemClickListener to work this.mListView.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); 

Establezca estas propiedades:

  android:focusable="false" android:focusableInTouchMode="false" 

Para todos los elementos de UI en su archivo list_item.xml .

Si esto no se resuelve en su conjunto de adaptadores:

  v.imageView.setFocusable(false); v.imageView.setFocusableInTouchMode(false); 
  • Personalización de los colores de Android ListView?
  • Snap de vista de lista al elemento
  • ¿Por qué ListView.getCheckedItemPositions () no devuelve valores correctos?
  • Cómo configurar Listener En el texto Editar de la vista de lista personalizada en android
  • Cómo establecer pull up para actualizar SwipeRefreshLayout
  • ¿Cómo hacer que mis elementos de ListView puedan hacer clic?
  • ¿Utilizar un ListView para crear una pantalla de configuración en Android?
  • Android AbsListView $ RecycleBin.addScrapView (AbsListView.java:6588)
  • ¿Puedo usar Pull para actualizar sin utilizar ScrollView / ListView?
  • ¿Cómo puedo obtener los resultados de análisis de Android Wifi en una lista?
  • Android addHeaderView desaparece cuando no hay elementos en ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.