Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Consejo rápido: usando Butter Knife para inyectar views (vistas) en Android

by
Difficulty:BeginnerLength:ShortLanguages:

Spanish (Español) translation by Javier Salesi (you can also view the original English article)

En éste consejo rápido, aprenderás como integrar la librería Butter Knife en tus proyectos para instanciar fácilmente los views en tu layout en el código de tu aplicación.

Introducción

En cada aplicación Android, tienes que usar el método findViewById() para cada view en el layout que quieres usar en el código de tu aplicación. Pero mientras más complejos se vuelven los layouts de los diseños de las aplicaciones, el llamado a éste método se convierte en repetitivo y aquí es donde entra en escena Butter Knife.

La librería Butter Knife, desarrollada y mantenida por Jake Wharton (Square Inc.), tiene anotaciones que ayudan a los desarrolladores a instanciar los views de tu Activity (actividad) o Fragment (fragmento). También tiene anotaciones para manejar eventos como onClick(), onLongClick(), etc.

En el proyecto de ejemplo de éste tutorial, puedes ver una aplicación ejemplo con una activity y un fragment con una implementación usando la librería Butter Knife y una implementación regular. Exploremos los pasos necesarios para integrar la librería Butter Knife.

1. Usando la Librería Butter Knife

Paso 1: Añadir la Dependencia

Agrega la siguiente dependencia al archivo build.gradle del proyecto:

Luego, sincroniza tu proyecto con éste archivo al presionar el botón synchronize (sincronizar).

Press the button to sync the project with the grade files

Paso 2: Usa las Anotaciones

En cada activity o fragment, tienes que remover, o poner como comentario, cada llamada del método findViewById y agregar la anotación @InjectView antes de la declaración de la variable, indicando el identificador del view.

Paso 3: Inyectar Views

En el método onCreate() de la activity, antes de usar cualquiera de los views, llama a inject en el objeto Butterknife.

Si estás usando fragments, tienes que especificar la fuente de los views en el método onCreateView como se muestra abajo.

Ahora puedes empezar a usar los views en el código de tu aplicación. Butter Knife manejará la instanciación de cada view por tí.

Eso es todo lo que tienes que hacer para usar la librería Butter Knife en una activity o fragment. En la próxima sección, te mostraré como usar la librería Butter Knife para usar list views.

2. Usando la Librería Butter Knife con List Views

La clase ListView es un caso especial para implementar, porque tu instancias los views dentro de un adaptador. Para integrar la librería Butter Knife en una list view, primero tienes que crear el layout personalizado para los elementos del list view. Voy a nombrar la mía list_view_item y añadir el siguiente layout:

En éste layout simple, vamos a mostrar una imagen y algo de texto. Posteriormente, necesitamos crear el adaptador para el list view: Llamémoslo ListViewAdapter.

Dentro de la clase adaptador, hay una clase estática llamada ViewHolder para mantenerlo en orden. Vamos a usar ésta clase para que contenga los views. Implementemos la clase ViewHolder como sigue:

Todo lo que tenemos que hacer ahora es modificar el método getView() como sigue:

En éste método, estoy inflando el layout dentro de la variable view y usándolo para crear un objeto de la clase ViewHolder. Nota que estamos usando la clase Picasso para cargar imágenes remotas y colocar algo de texto en el text view. Puedes encontrar útil el tutorial de Picasso si quieres familiarizarte más con ésta librería.

No olvides añadir el permiso android.permission.Internet en el manifiesto de Android. Si no, Picasso no podrá conectar con la web y cargar las imágenes remotas. 

Finalmente, todo lo que tienes que hacer es instanciar el list view y enlazar el adaptador. Voy a hacer ésto dentro de una nueva activity, ListViewActivity, como se muestra abajo. Puedes ver un ejemplo de ésta implementación en los archivos fuente de éste tutorial.

3. Eventos

Puedes también usar las anotaciones de Butter Knife para eventos. Elige la anotación que quieres usar, de acuerdo al evento que quieres responder, y ponlo antes del método que quieres ejecutar cuando ocurran los eventos.

Conclusión

Puedes usar el método Butter Knife inject() en el lugar que quieras, de otra manera usa el método findViewById() para ahorrar tiempo y evitar repetición de código cuando tengas que instanciar los views en el layout. Con toda confianza comparte éste consejo si los encontraste útil.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.