1. 程式人生 > >Android Butterknife 使用總結——Android Studio 3.0

Android Butterknife 使用總結——Android Studio 3.0

Butterknife 的配置情況分很多種。本篇文章主要是在Android Studio 3.0版本下配置。

由於Android studio更新,然後gradle更新了,這樣的話可能使原來的android-apt 工具跟不上節奏了,所以讓採用annotationProcessor工具。因此配置方法有所改變。

配置:

第一步:在Project的 build.gradle 中builscript標籤中的子標籤dependencies中新增如下程式碼:

classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1
如下所示:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'  //新增這一行
    }
}

第二步:在Preoject 的build.gradle中新增如下程式碼:
 
apply plugin: 'com.jakewharton.butterknife'

第三步:在app的build.gradle中的dependencies標籤中新增如下程式碼:

compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

這樣就配置成功了。

使用:

佈局檔案xml定義TextView:

<TextView
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height=
"wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />

Activity中setContentView之後,需要bing ButterKnife,然後使用@BindView(R.id.textview1)繫結view。如下:

 @BindView(R.id.textview1)
    TextView tv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        tv1 = findViewById(R.id.textview1);
        ButterKnife.bind(this);
        tv1.setText("Hello ButterKnife");
    }