2010-02-23 26 views

Respuesta

25

Es necesario establecer itemsCanFocus en la lista como esta:

mList.setItemsCanFocus(true); 

pueda hacer clic en el botón. Luego tendrá que usar su propio adaptador y en getView devolver una vista que se puede hacer clic y se puede enfocar. También perderá los estados resaltados predeterminados, por lo que deberá volver a colocarlos con el recurso de fondo. Haga esto:

view.setClickable(true); 
    view.setFocusable(true); 
    view.setBackgroundResource(android.R.drawable.menuitem_background); 

a su vista antes de regresar su vista.

+3

Muchas gracias. Además, tuve que agregar un OnClickListener a la vista. – ggarber

+1

¿Alguna idea de cómo obtener los estados resaltados de los temas de holo que se usan en las listas de manera predeterminada? 'menuitem_background' es naranja, pero el estado predeterminado debe ser azulado. – rndstr

+6

Esto no funciona. El AdapterView.OnItemClickListener nunca se llama. – Chloe

0

Lamentablemente, no creo que eso sea posible. La fila ListView puede tener widgets seleccionables, como un botón, o que se puede hacer clic, no ambos. Ve link.

+2

Pero Google lo hace. – KickingLettuce

2

Intente configurar sus widgets en no clicables y no enfocables en xml, el clic en elementos funcionará normalmente y también el botón de hacer clic funcionará normalmente.

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

Espero que esto ayude.

9

Siempre que veo publicaciones relacionadas con los atributos android:focusable y android:clickable, siempre veo que ambos tienen el mismo valor a la vez. Pensé que debe haber una razón si son dos atributos separados en lugar de ser uno.

Resulta que una forma mucho mejor de lograr su comportamiento deseado es establecer

android:focusable="false" 

o

yourButton.setFocusable(false) 

en el Button en su View. Una vez que lo haga, podrá establecer un OnClickListener en el Button y un clic en la fila activará el método onListItemClick() en su OnItemClickListener.

+1

Esto funcionó para mí mejor que la respuesta elegida. –

Cuestiones relacionadas