Android Configurer ButterKnife dans votre projet


Exemple

Configurez votre build.gradle au niveau du build.gradle pour inclure le plugin android-apt :

buildscript {
   repositories {
      mavenCentral()
   }

   dependencies {
      classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
   }
}

Ensuite, appliquez le plugin android-apt dans votre build.gradle niveau du build.gradle et ajoutez les dépendances ButterKnife:

apply plugin: 'android-apt'

android {
    ...
}

dependencies {
      compile 'com.jakewharton:butterknife:8.5.1'
      annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
}

Note: Si vous utilisez le nouveau compilateur Jack avec la version 2.2.0 ou plus récente, vous n'avez pas besoin du plug android-apt in android-apt et vous pouvez remplacer apt par annotationProcessor lors de la déclaration de la dépendance du compilateur.

Pour utiliser les annotations ButterKnife, vous ne devez pas oublier de les lier dans onCreate() de vos activités ou onCreateView() de vos fragments:

class ExampleActivity extends Activity {

    @Override 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Binding annotations
        ButterKnife.bind(this);
        // ...
  }

}

// Or
class ExampleFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        View view = inflater.inflate(getContentView(), container, false);
        // Binding annotations
        ButterKnife.bind(this, view);
        // ...
        return view;
  }

}

Les instantanés de la version de développement sont disponibles dans le référentiel d'instantanés de Sonatype .


Vous trouverez ci-dessous les étapes supplémentaires à suivre pour utiliser ButterKnife dans un projet de bibliothèque.

Pour utiliser ButterKnife dans un projet de bibliothèque, ajoutez le plug-in à votre build.gradle niveau du build.gradle :

buildscript {
    dependencies {
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
    }
}

… Et ensuite appliquer à votre module en ajoutant ces lignes en haut de votre build.gradle niveau de la build.gradle :

apply plugin: 'com.android.library'
// ...
apply plugin: 'com.jakewharton.butterknife'

Maintenant, assurez-vous d'utiliser R2 au lieu de R dans toutes les annotations ButterKnife.

class ExampleActivity extends Activity {

    // Bind xml resource to their View 
    @BindView(R2.id.user) EditText username;
    @BindView(R2.id.pass) EditText password;

    // Binding resources from drawable,strings,dimens,colors
    @BindString(R.string.choose) String choose;
    @BindDrawable(R.drawable.send) Drawable send;
    @BindColor(R.color.cyan) int cyan;
    @BindDimen(R.dimen.margin) Float generalMargin;

    // Listeners
    @OnClick(R.id.submit)
    public void submit(View view) {
    // TODO submit data to server...
    }

    // bind with butterknife in onCreate
    @Override 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        // TODO continue
  }

}