当前位置: 移动技术网 > 移动技术>移动开发>Android > ButterKnife 初体验

ButterKnife 初体验

2018年06月10日  | 移动技术网移动技术  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网