首頁: 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可以完美解決,大大提高程式設計的效率效果如下圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-YWan5iNlZDM4ATMwkDO4I2N3YTNkhTO3QmZ0MTZ5MmYjNTY58CXyEzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.gif)
下面我來介紹一下在項目中的配置過程:
方法一:在gradel裡面直接搜
打開Android Studio的File->Project Structure
點選左邊菜單欄的app選項,并且點選右邊上方的Dependencies這個Tab選項,然後點選右上角"加号"選擇"1 Library dependency",然後在彈出框中直接搜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檔案:
整個Project的的build.grade檔案:
Sync Now:
然後最關鍵的一步:打開File->Settings->plugins,在搜尋欄内搜尋ButterKnife,要是沒有引入該軟體,就install,将這個軟體打鈎選中使用:(沒有這一步不能自動生成代碼)
然後是最後一步,在使用前在onCreate方法中(一定要在setContentVIew之後)調用ButterKnife.bind(this);然後就可以自動生成代碼了,生成方式:選中布局檔案的名字,右擊選擇Generate->Generate BUtterknife injecktions,會彈出來下面這個對話框:
然後在Variable Na....一欄修改預設的一些對象的一些名字,點選OK,就生成了相應的代碼了.
最後看一下最終效果: