Android Configurare ButterKnife nel tuo progetto


Esempio

Configura il tuo build.gradle a livello di build.gradle per includere il plugin per android-apt :

buildscript {
   repositories {
      mavenCentral()
   }

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

Quindi, applica il plugin per android-apt nel build.gradle livello di build.gradle e aggiungi le dipendenze di ButterKnife:

apply plugin: 'android-apt'

android {
    ...
}

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

Nota: se stai usando il nuovo compilatore Jack con la versione 2.2.0 o più recente non hai bisogno del plugin per android-apt e puoi invece sostituire apt con annotationProcessor quando dichiari la dipendenza del compilatore.

Per utilizzare le annotazioni di ButterKnife, non dimenticare di onCreate() in onCreate() delle tue attività o onCreateView() dei tuoi frammenti:

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;
  }

}

Le istantanee della versione di sviluppo sono disponibili nel repository di istantanee di Sonatype .


Di seguito sono riportati i passaggi aggiuntivi che dovresti fare per utilizzare ButterKnife in un progetto di libreria

Per usare ButterKnife in un progetto di libreria, aggiungi il plugin al tuo build.gradle livello di build.gradle :

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

... e poi applica al tuo modulo aggiungendo queste righe nella parte superiore del tuo livello di libreria build.gradle :

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

Ora assicurati di usare R2 invece di R all'interno di tutte le annotazioni 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
  }

}