pedrovgs/Renderers

Listener de click a elemento de la lista

Closed this issue · 3 comments

Buenas Pedro, no consigo entender como implementar la gestion del click a un elemento de la lista sin hacer uso de inyeccion de dependencias..¿Tienes algun ejemplo?
Gracias por la libreria, creo que me va a ahorrar años de dolores de cabeza xD

Hola! Gracias a ti por preguntar!

Todo depende de cómo quieras implementarlo, para utilizar Renderers no tienes por qué utilizar inyección de dependencias si no quieres. Tienes las siguientes opciones:

  • Utilizar inyección de dependencias (just kidding xD ).
  • Puedes crear tus renderers en activities o fragments e inicializar ahí los listeners que quieras.
  • Pasar el listener al renderer una vez esté construido por un setter (es similar a la anterior)
  • Hacer implementaciones con clases anónimas en los renderers.
  • Utilizar ViewModels y delegar el click en el ViewModel.
  • Utilizar una custom view y hacer la implementación del click dentro de la custom view.

Existen otras bastante más raras como hacer una implementación anónima del click listener de un widget y lanzar un evento utilizando un bus de eventos como otto o enviando un broadcast.

Piensa que con la implementación antigua lo más común es pasar el click listener al adapter que utiliza y declara los ViewHolders o hacer una implementación anónima dentro del método getView del adapter. El uso de renderers no es muy diferente en este aspecto.

Si lo que quieres es implementar solo el click de una lista también puedes optar por un clásico que es utilizar en onItemClickListener al ListView :) (quizás debí comenzar por aquí jaja)

Dime si he resuelto tu duda para poder cerrar este issue. Un saludo!

Mas que resuelta! Creo que lo mas simple va a ser la gestión a traves del onitemclick del listview.
Una duda mas, para que sirve exatmanete el método de hooks?gestionar listener supongo pero cuales..? Me acabo perdiendo xD.
Puedes dar por cerrado el issue cuando quieras. Gracias

El método hookListeners se suele utilizar para conectar los listeners a los widgets que se han obtenido de la view en el método setUpView. No tienes por qué hacerlo ahí si no quieres, es solo una cuestión de estilo. En la implementación que ves están vacíos porque ese ejemplo ahora utiliza Butterknife que te ahorra tener que hacer eso a mano.

El primer ejemplo que subí al repositorio no utilizaba Butterknife, puedes ver cómo se utilizaban esos métodos antes de modificar el ejemplo (tendrás que viajar un poco en el tiempo por el repo)

De momento dejaré ambos métodos porque no todos los desarrolladores utilizan Butternknife para simplificar el trabajo con las vistas y esos métodos suelen venir bastante bien.

Un saludo!