2011-06-08 21 views
10

Mi problema proviene de ListView. Sin botones, el .setOnItemClickListener del ListView funciona bien. (Para iniciar una actividad)Android: ListView con botones -> OnItemClick no hacer nada

En el momento que añadir botones en elementos de ListView, los botones se puede hacer clic, pero los elementos no son más se puede hacer clic ...

intento usar myListView.setItemCanFocus(true); pero no trabajo ...

+0

No consigo su pregunta. Se puede hacer clic en los botones, cuando se agrega en CLICKListener y elementos cuando se estableceOnItemClickListener. ¿Puede explicar con mayor precisión qué ha agregado y dónde? – Stuti

+0

Tener botones en una vista de lista suena raro. ¿Has pensado en usar un menú contextual en su lugar? –

+0

@Stuti: Y no puedo escribir. ¿Podría escribir "usted" en lugar de "u"? Deberíamos mantener el lenguaje limpio aquí. Gracias – WarrenFaith

Respuesta

0

Usted puede utilizar esto en .setOnItemClickListener del ListView

view.findViewById(R.id.btn_id).setOnClickListener(new View.OnClickListener(){//your method}) 
2

podría ser mejor usar un onTouch() llamada de retorno para el botón que se pulse dentro de la vista de lista. Debería poder hacer clic.en el elemento de la lista y en el botón. Consulte this question para obtener algún código (no necesita touchDelegate).

2

El motivo es el botón en su vista de lista absorbe el evento onItemClickEvent.

Un bien explicado tutorial es here

34

Quitar el atributo enfocable del botón resolvería este problema. Podrías hacerlo en un archivo xml de diseño o en un código fuente de Java.

Y una sugerencia más, si está utilizando ImageButton en lugar de Button, necesita setFocusable en su código java para que funcione, porque el constructor de ImageButton generará este atributo después de inflar desde el archivo xml.

+2

Acabas de salvar mi día. ¡¡¡Muchas gracias!!! –

+0

Esto es genial. Mucho más rápido que el otro trabajo alrededor. ¡Gracias! Para cualquiera que no sepa cómo hacerlo, simplemente agregue android: focusable = "false" a su botón en su archivo XML. –

+0

¡Muchas gracias! Para los lectores: para el botón es una verdadera solución, lo compruebo. – DenisMath

Cuestiones relacionadas