2010-11-14 26 views
40

¿Cuál es la diferencia entre estos dos oyentes, documentación dice:Diferencia entre onItemClickListener y OnItemSelectedListener de AdapterView

OnItemSelectedListener - definición de interfaz para una devolución de llamada que se invoca cuando un artículo en esta vista ha sido seleccionado.

OnItemClickListener: definición de interfaz para una devolución de llamada que se invocará cuando se haga clic en un elemento de este AdapterView.

Selección, haga clic en ¿No son iguales en la pantalla táctil?

+1

Creo que es seleccionado clics + centrarse ganancias, por ejemplo, también puedes activarlo con la bola de seguimiento – apps

Respuesta

52

OnItemSelectedListener se utiliza para Spinners, y OnItemClickListener se utiliza para ListViews.

+2

Nice. eso es simple, pero rara vez la fuente dice sobre esto. Realmente me hace confundir – hqt

+2

Creo que quieres decir, 'Me hace confundido' :) Sin embargo, estoy de acuerdo - interfaces Java a menudo sufren de este problema extraño de declarar métodos que no están destinados a ser llamado. – Alex

+11

Esto es incorrecto, AdapterViews puede usar cualquiera/ambos tipos de oyentes. user1611552 ha identificado correctamente la diferencia y que debe ser la respuesta correcta – d370urn3ur

28

AdapterView.OnItemSelectedListener se invoca solo cuando la posición recién seleccionada es diferente de la posición seleccionada previamente o si no había ningún elemento seleccionado.

Sin embargo, se invoca AdapterView.OnClickListener incluso si hace clic en el mismo elemento cada vez.

http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html

+5

A pesar de que los documentos dicen así, pero onitemselectedlistener no funciona para vista de lista y de manera similar onitemclicklistener no funciona para la visión spinner ya que es una especificación general y no incluye/excluye cualquier particular, excepción. – user2779311