Butter Knife: librería para inyectar vistas en Android

| 2016-11-23 | No hay comentarios »

Butter Knife es una librería que nos facilitará la tarea de relacionar los elementos de las vistas con el código en nuestras aplicaciones Android. Nos evitará tener que utilizar findViewById y simplificará el código. Lo vemos más fácil con un ejemplo.

Tenemos un layout llamado activity.xml con la siguiente estructura:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

En nuestro código, podremos utilizar la librería Butter Knife de esta forma para inyectar el TextView:

public class MainActivity extends Activity{

@BindView(R.id.textview) TextView myTextview;

@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity);
 ButterKnife.bind(this);
 myTextview.setText("Hello");
 }
 }

No solo podemos utilizar Butter knife para inyectar vistas, también ofrece otro tipo de anotaciones para manejar eventos como OnClick(), OnLongClick(), etc.

public class MainActivity extends Activity{
 
 @BindView(R.id.textview) TextView myTextview;
 @OnClick(R.id.textview) public void submit() { 
 Toast.makeText(this, "Submit", Toast.LENGTH_LONG).show();
 }
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity);
 ButterKnife.bind(this);
 myTextview.setText("Hello");
 }
}

Para instalar Butter Knife solo tendremos que:

1-Añadir las siguientes líneas en la primera sección del archivo build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}
apply plugin: 'com.neenbedankt.android-apt'

2-Añadir las siguientes dependencias (dentro de la sección dependencies) del archivo build.gradle

compile 'com.jakewharton:butterknife:8.4.0'
apt 'com.jakewharton:butterknife-compiler:8.4.0'

Les recomiendo que entren a la página oficial de Butter Knife para ver el resto de funcionalidades, ya que es una librería sumamente interesante.

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Crear múltiples productFlavors con Android Studio
  • Gson: Librería para parsear JSON en Android
  • HTTPS y SSL en Android
  • Comenzar con PhoneGap 3.5 con línea de comandos