寫在前面:大家好!我是
ACfun
,我的暱稱來自兩個單詞Accepted
和fun
。這篇博客記錄一下如何在Android Studio開發環境中安裝及使用ButterKnife註解框架。如果博客中有不足或者的錯誤的地方歡迎在評論區或者私信我指正,感謝大家的不吝賜教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感謝大家的支持。
文章目錄
ButterKnife簡介
butter knife是出自 JakeWharton 的一個開源庫,它是一個專注於 Android 系統的 View 依賴注入框架。
它通過註解的方式來替代 android 中 view 的相關操作。減少大量的 findViewById 以及 setOnClickListener 代碼,且對性能的影響較小。
在安卓項目中使用 ButterKnife 會極大地加快我們開發的速度。
ButterKnife GitHub項目地址:https://github.com/JakeWharton/butterknife
ButterKnife的優勢
- 強大的 View 綁定和 Click 事件處理功能,簡化代碼,提升開發效率。
- 方便的處理 Adapter 裏的 ViewHolder 綁定問題。
- 提高APP運行效率,使用配置方便。
安裝ButterKnife插件
在 Android Studio 中使用 ButterKnife 需要首先安裝該插件。注意:SDK版本爲23及以下的無法安裝使用1.6.0版本,只能使用1.5.0版本。
如何查看SDK版本
有很多方法可以查看SDK版本,我寫一下我使用的方法:
首先找到SDK的安裝位置,然後雙擊打開SDK Manager.exe,點擊Tools,再點擊About即可看到SDK的版本號。
1.5.0版本下載安裝方法
點擊 【File】—>【Setting】—> 【plugins】,然後輸入 butterknife 安裝插件。如果SDK版本爲23及以下需要從網上下載壓縮包然後再安裝。
這裏默認安裝的是1.6.0版本的,但是我的SDK版本是23的,所以需要從官網下載1.5.0的安裝包,進行離線安裝。點擊下圖中的pluging homepage即可進入官網。然後找到1.5.0版本下載,放到一個固定的位置,建議放在Android Studio的文件夾中。我放在了plugins文件夾中。
下載完成之後在Android studio的 pluging 界面點擊那個小齒輪,然後點擊Install plugins from Disk……,找到剛纔下載的文件安裝完之後重啓即可。
配置使用ButterKnife
安裝好插件之後,在Module中的build.gradle中的 dependencies 中添加以下代碼:
implementation 'com.jakewharton:butterknife:7.0.1'
annotationProcessor 'com.jakewharton:butterknife:7.0.1'
然後點擊Sync Now
等待更新完成就可以使用ButterKnife依賴注入框架了。
ButterKnife的基本使用方法
初始化控件
配置完之後我們就可以使用這個框架了。當我們畫好界面之後需要在對應的 Activity 中初始化我們在 layout 寫的控件。具體方法爲:右鍵 layout -> 點擊Generate->Generate ButterKnife Injections。做完這些我們就可以直接完成初始化控件,而不需要一個一個的findViewByid()……了。
控件使用方法
初始化完成之後我們就可以使用控件了,不過使用方法和我們使用findViewByid()方法不同。基本的使用方法如下:
TextView 的使用
- 初始化(一般是自動生成的)
@butterknife.Bind(R.id.tv_time)
TextView tv_time;
2.使用舉例
tv_time.setText();
Button 的使用
1.初始化(一般是自動生成的)
@butterknife.Bind(R.id.btn_skip)
Button btn_Skip;
2.監聽事件(也是可以自動生成的,在初始化的時候再OnClick那一欄打鉤即可)
@butterknife.OnClick(R.id.btn_skip)
public void onClick() {
// 加入具體的操作
// ……
}
}
ButterKnife比較常用的功能
上面只是簡單的舉了兩個ButterKnife使用的例子。ButterKnife還有很多作用,這裏就簡單的列舉一下比較常用的功能,這裏就不一一展開敘述了更多使用方法請參考ButterKnife 官方使用文檔。
- 省略findViewById()
- 省略setOnClickLintener()
- ListView的點擊@OnClick,CheckBox的@OnClickedChanged也可以實現省略操作。
- 可以一次指定多個id,爲多個View綁定一個時間處理方法。
- 等等
我是 ACfun !感謝大家的支持。