ButterKnife能夠幫助你進行字段和方法的綁定,使用註解來android中控件的查找和方法的綁定。
java
ButterKnife如今的版本是7.0.1.下載地址:http://jakewharton.github.io/butterknife/ 下載jar包。android
在androidstudio中的使用,直接將jar包導入到libs文件夾裏,而後直接設置工程屬性添加這個包就好了。git
使用方法:github
在Activity裏
iview
@Bind(R.id.change) Button change; @Bind(R.id.next) Button next;
變量使用@Bind來綁定,變量不能夠爲private類型。函數
在onCreate裏面調用
this
ButterKnife.bind(this);
在onDestroy裏面調用spa
ButterKnife.unbind(this);
若是是在Fragment裏面調用
指針
在onCreateView調用code
view = inflater.inflate(R.layout.fancy_fragmentcontainer)ButterKnife.(view)
在onDestroyView裏面調用
ButterKnife.unbind(this);
官網的建議是
Fragments have a different view lifecycle than activities. When binding a fragment in onCreateView
, set the views to null
in onDestroyView
.
片斷和Activity有着不一樣的生命週期,因此要在onDestroyView裏面調用unbind函數,這是一種建議並非必定要這麼作,你也能夠不實現onDestroyView這個函數。若是onCreateView裏面view是全局的或者你在其它地方調用了,那麼onDestroyView調用unbind函數,那麼就會出現空指針異常。
在Adapter裏面調用
ViewHolder { @Bind(R.id.title) TextView name; @Bind(R.id.job_title) TextView jobTitle; public ViewHolder(View view) { ButterKnife.bind(this, view); } }
在geiview裏面初始化這個類就能夠了。
ButterKnife也能夠綁定函數和資源,這裏就給出一些實例
@OnClick(R.id.submit) submit(View view) { }
@OnClick({R.id.door1R.id.door2R.id.door3}) pickDoor (DoorView door){ (door.hasPrizeBehind()) { Toast.makeText(LENGTH_SHORT).show()} { Toast.makeText(LENGTH_SHORT).show()} }
@OnItemSelected(R.id.list_view) onItemSelected(position) { }
@BindString(R.string.title) String title @BindDrawable(R.drawable.graphic) Drawable graphic @BindColor(R.color.) red @BindDimen(R.dimen.spacer) Float spacer
其餘的功能能夠自行發掘