ButterKnife 初体验
程序员文章站
2022-10-31 11:14:50
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","zhangsan@163.com",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","zhangsan@163.com",15)); break; case R.id.delete_one: StudentDaoOpe.deleteData(this,new Student(null,"zhangsan","zhangsan@163.com",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
上一篇: 课时75.并集选择器(掌握)
下一篇: jsoup官方解析和遍历一个HTML文档
推荐阅读