ButterKnife 環境搭建 在project的build.gradle文件中添加依賴的插件 在app的build.gradle文件中添加依賴,並添加插件 使用 在Activity中 小點點 + 在Activity中不需要解綁,但是在Fragment中卻需要在onDestroyView中進行解綁 ...
ButterKnife
環境搭建
在project的build.gradle文件中添加依賴的插件
//ButterKnife 的插件
// classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
在app的build.gradle文件中添加依賴,並添加插件
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
使用
在Activity中
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
//使用@BindView來綁定一個View對象,綁定的對象不能是private或者static修飾的
@BindView(R.id.add_one)
Button addOne;
@BindView(R.id.add_100)
Button add100;
@BindView(R.id.update_100)
Button update100;
@BindView(R.id.update_first)
Button updateFirst;
@BindView(R.id.delete_one)
Button deleteOne;
@BindView(R.id.delete_all)
Button deleteAll;
@BindView(R.id.query)
Button query;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//綁定必鬚髮生在已經設置過layout佈局文件之後
ButterKnife.bind(this);
}
//用@OnClick註解標識是Click方法
@OnClick({R.id.add_one, R.id.add_100, R.id.update_100, R.id.update_first, R.id.delete_one, R.id.delete_all, R.id.query})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.add_one:
StudentDaoOpe.insertData(this,new Student(null,"zhangsan","[email protected]",15));
break;
case R.id.add_100:
add100();
break;
case R.id.update_100:
update100();
break;
case R.id.update_first:
StudentDaoOpe.updateData(this,new Student(null,"zhangsan","[email protected]",15));
break;
case R.id.delete_one:
StudentDaoOpe.deleteData(this,new Student(null,"zhangsan","[email protected]",15));
break;
case R.id.delete_all:
StudentDaoOpe.deleteAllData(this);
break;
case R.id.query:
startActivity(new Intent(this,QueryActivity.class));
break;
}
Log.i(TAG, "onViewClicked: "+view.getId() + " finish ");
}
private void add100() {
}
private void update100() {
}
}
小點點
- 在Activity中不需要解綁,但是在Fragment中卻需要在onDestroyView中進行解綁
- 修飾符不允許使用private或者static
- 在非Activity中,bind的this參數不允許被替換為getActivity
可以綁定顏色,資源等,也可以綁定多個view
事件處理
- @OnClick 點擊事件
- @OnCheckedChanged 選中和取消選中
- @OnEditorAction 軟鍵盤的功能鍵
- @OnFocusChange 焦點改變
- @OnItemClick item 條目被點擊
- @OnItemLongClick 長按
- @OnItemSelected item被選擇事件
- @OnLongClick 長按事件
- @OnPageChange 頁面改變事件
- @OnTextChanged EditText裡面的文本變化事件
- @OnTouch 觸摸事件
@Optional