天天看點

依賴注入架構之butterknife

首頁: https://github.com/JakeWharton/butterknife

用途: 主要用來簡化各種初始化控件的操作

配置:

1. 在app/build.gradle檔案中dependencies節點添加如下代碼

    compile 'com.jakewharton:butterknife:7.0.1'

2. 在Android Studio中點選 File-->Settings-->Plugins-->Browse repositories,搜尋Android ButterKnife Zelezny插件,安裝成功以後重新開機Android Studio.

3. 在布局檔案中添加控件的時候,所有需要在Activity/Fragment代碼中進行控制的控件都要添加id屬性

4. 在Activity/Fragment 代碼中,将滑鼠放在布局檔案的引用上(即R.layout.activity_main中的activity_main上面),此時按快捷鍵Alt + Insert或滑鼠右鍵選擇Generate

5. 在彈出的菜單中選擇Generate ButterKnife Injections,此時會再次彈出一個對話框

6. 新的對話框中點選confirm後直接生成控件的引用,代替findViewById

7. 如果需要處理控件的點選事件,可以選擇對應控件的OnClick複選框.

8. 如果是ListView的Item視圖,還可以選擇左下角的Create ViewHolder複選框,生成ViewHolder靜态類.

使用步驟

第一步:添加依賴

在Android studio中在app的build.grade檔案中加入下面二行代碼:

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

 studio會自動聯網下載下傳,

第二步:安裝插件

打開File->Settings->plugins,在搜尋欄内搜尋ButterKnife,要是沒有引入該軟體,就install,将這個軟體打鈎選中使用,

第三步:使用

在onCreate方法中(一定要在setContentVIew之後)調用ButterKnife.bind(this)(注一般也會自動生成,如果沒有生成一定要手動寫入);然後就可以自動生成代碼了

生成方式:選中布局檔案的名字,右擊選擇Generate->Generate BUtterknife injecktions

android程式設計的時候,經常會遇到findViewById的問題,尤其是當你的布局中的view較多的時候,initView是一個很耗時的過程,針對這一問題,ButterKnife可以完美解決,大大提高程式設計的效率效果如下圖:

依賴注入架構之butterknife

下面我來介紹一下在項目中的配置過程:

方法一:在gradel裡面直接搜

打開Android Studio的File->Project Structure

點選左邊菜單欄的app選項,并且點選右邊上方的Dependencies這個Tab選項,然後點選右上角"加号"選擇"1 Library dependency",然後在彈出框中直接搜butterknife,就可以搜到,然後選擇引入:

依賴注入架構之butterknife
依賴注入架構之butterknife

引入之後會在項目的build.grade檔案下的dependencies下生成:

第一步:compile 'com.jakewharton:butterknife:8.4.0'(位置1)這樣一行代碼,

第二步:在dependencies 下面加入這樣一行代碼:apt 'com.jakewharton:butterknife-compiler:8.4.0' (位置2)

第三步:在該檔案根目錄最上面加入這樣一行代碼:apply plugin: 'com.neenbedankt.android-apt'(位置3),

第四步:并同時在整個Project的build.grade檔案的buildscript的dependencies下面加入這樣一行代碼:classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'(位置4),然後點選編譯器右上角的Sync Now同步修改:

項目的build.grade檔案:

依賴注入架構之butterknife

整個Project的的build.grade檔案:

依賴注入架構之butterknife

Sync Now:

依賴注入架構之butterknife

然後最關鍵的一步:打開File->Settings->plugins,在搜尋欄内搜尋ButterKnife,要是沒有引入該軟體,就install,将這個軟體打鈎選中使用:(沒有這一步不能自動生成代碼)

依賴注入架構之butterknife

然後是最後一步,在使用前在onCreate方法中(一定要在setContentVIew之後)調用ButterKnife.bind(this);然後就可以自動生成代碼了,生成方式:選中布局檔案的名字,右擊選擇Generate->Generate BUtterknife injecktions,會彈出來下面這個對話框:

依賴注入架構之butterknife

然後在Variable Na....一欄修改預設的一些對象的一些名字,點選OK,就生成了相應的代碼了.

最後看一下最終效果: