前言
插件更新到支持ButterKnife(版本為8.4.0),在原有的GenerateFindViewById插件上,添加多一個(gè)Action,用于區(qū)分FidViewById和ButterKnife模式,并且用Factory.createAnnotationFromText()方法來(lái)實(shí)現(xiàn)為變量添加注解。
至于如何添加多個(gè)Action、為變量添加注解和自己編寫(xiě)插件可以看
自己編寫(xiě)Android Studio插件。
FindViewById說(shuō)明請(qǐng)看
Android Studio插件GenerateFindViewById。

ButterKnife
更新
- 1.3 變量名支持三種命名格式1、
mAaBbCc,2、aa_bb_cc,3、aaBbCc - 1.2.2
Onclick可以全選或取消全選 - 1.2.1 修復(fù)
ImageView和TextView不能點(diǎn)擊OnClick - 1.2 支持
ViewHolder - 1.1.2
Button默認(rèn)勾選OnClick - 1.1 支持
ButterKnife,版本為8.4.0,快捷鍵Ctrl+Alt+Shift+E,可選擇是否生成ButterKnife.bind(),對(duì)Fragment的view的初始化放在onCreate里面,添加LayoutInflater生成。 - 1.0 支持
Activity和Fragment,添加可選生成的字段,可編輯變量名,可選擇是否LayoutInflater類型,添加快捷鍵Ctrl+Alt+E,text、hint的值添加到字段注釋,添加LayoutInflater生成,添加OnClick生成代碼。
ButterKnife演示
ButterKnife生成@BindView和@OnClick

ButterKnife生成@BindView和@OnClick
支持LayoutInflater

支持LayoutInflater
安裝
- 下載項(xiàng)目里面的
GenerateFindViewById.jar包,然后打開(kāi)AS的Plugins,點(diǎn)擊Install plugin from disk...安裝 - 打開(kāi)AS的Plugins,點(diǎn)擊
Browse repositories...然后搜索GenerateFindViewById,然后安裝
快捷鍵
- ButterKnife:
Ctrl+Alt+Shift+E
說(shuō)明
- 支持ViewHolder
- 支持Activity和Fragment
- 可輸入布局字段,可選中布局文件字段,自動(dòng)生成有id控件相應(yīng)的代碼
-
Activity如果沒(méi)有onCreate方法,會(huì)先生成onCreate方法,再重新操作一次才生成有id控件相應(yīng)的代碼。 -
Fragment如果沒(méi)有onCreateView方法,會(huì)先生成onCreateView方法,再重新操作一次才生成有id控件相應(yīng)的代碼。 - 可選生成的字段,可編輯變量名,可選擇是否
LayoutInflater類型。 -
LayoutInflater類型生成的變量規(guī)則,如LayoutInflater的變量為mView,生成控件變量后面會(huì)加上View。
ButterKnife用法
- 新建
Activity或者Fragment后,選中布局按下快捷鍵Alt+Insert,然后選擇ButterKnife或者在菜單欄中的Code中選擇ButterKnife,或者直接使用快捷鍵Ctrl+Alt+Shift+E - 如果沒(méi)有選中布局,會(huì)彈出輸入框,輸入布局,插件會(huì)自動(dòng)遍歷布局列出所有帶id的控件
- 會(huì)自動(dòng)檢測(cè)是否已有代碼,可選擇是否生成、是否生成
OnClick代碼,可編輯變量名 - 可選擇是否生成
View view = LayoutInflater.from(context).inflater()代碼,可編輯生成的View的變量名 - 點(diǎn)擊確認(rèn)生成
規(guī)則
-
Activity如果沒(méi)有onCreate方法,會(huì)先生成onCreate方法,Fragment如果沒(méi)有onCreateView方法,會(huì)先生成onCreateView方法 - 沒(méi)有id的控件是不會(huì)識(shí)別到的
- 識(shí)別到的控件變量名為
mAaBbCc命名 - 識(shí)別到的控件中有
clickable = true屬性,自動(dòng)生成setOnClickListener代碼和onClick方法 - 識(shí)別到的控件
ButterKnife都可以生成到onClick方法 - 自動(dòng)識(shí)別布局中的
include標(biāo)簽, 讀取對(duì)應(yīng)布局中的控件 - 識(shí)別到的控件中有
text或者hint屬性,會(huì)自動(dòng)生成里面的值到字段注釋 -
LayoutInflater生成的變量名規(guī)則為mAaBbCc+View的變量名(如mView會(huì)去掉m) -
ButterKnife生成的LayoutInflater是ButterKnife.findById()來(lái)替換view.findViewById() -
ButterKnife生成onClick方法包含的id屬性是根據(jù)當(dāng)前已有@OnClick注解說(shuō)包含的值里面的id和選擇的控件id來(lái)重新生成@OnClick的值
GitHub
源碼地址:GenerateFindViewById,歡迎star,issues。