Butter Knife: librería para inyectar vistas en Android

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.

Rodrigo Paszniuk
Rodrigo Paszniuk

Ingeniero Informático y Especialista en Docencia Universitaria con 15 años de trayectoria en la industria de software. Mi enfoque está en la arquitectura de sistemas y la formación de talento técnico en Paraguay. A través de Programacion.py, busco compartir conocimiento práctico y elevar el estándar del código en nuestra región.

Artículos: 322

Deja un comentario