Programación

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.

Salir de la versión móvil