一、Butterknife使用簡介
Butterknife是一個依托Java的注解機制來實現輔助代碼生成的框架,不通過反射機制。
在Android Studio中引入Butterknife需在build.gradle中加入如下代碼:
dependencies {
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
使用步驟:
1.綁定一個View
2.給一個View添加點擊事件
3.給多個View添加點擊事件
4.給ListView setItemClickListener
public class MainActivity extends AppCompatActivity {
//1.綁定一個View(View不能為private 或者 static)
@BindView(R.id.textview)
TextView mTextView;
//1.綁定一個View(View不能為private 或者 static)
@BindView(R.id.mlistview)
ListView mListView;
//1.綁定一個View(View不能為private 或者 static)
@BindView(R.id.imageview)
ImageView mImageView;
//2.給一個view添加點擊事件
@OnClick({R.id.textview, R.id.imageview})
public void onTextViewClick() {
Toast.makeText(this, "onTextViewClick", Toast.LENGTH_SHORT).show();
}
//3.給ListView setItemClickListener
@OnItemClick(R.id.mlistview)
public void onItemClick() {
Toast.makeText(this, "onItemClick", Toast.LENGTH_SHORT).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this); //綁定
}
}
二、Butterknife原理
1.開始回掃描Java代碼中所有的Butterknife注解
2.ButterKnifeProcessor會生成<className>$$ViewBinder內部類
3.調用bind方法加載生成的ViewBinder類