Butterknife bindview详解

官网地址以及GitHub地址

官方地址:http://jakewharton.github.io/butterknife/     

GitHub地址:https://github.com/JakeWharton/butterknife    

API访问地址:http://jakewharton.github.io/butterknife/javadoc/    
 


在android Studio项目中配置使用ButterKnife

  • Step one:在Project的 build.gradle 中添加如下代码(当项目为依赖项目的时候才要添加,如果为主项目无需添加
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.1'  //添加这一行
    }
}
  • build.gradle里面设置
  • Step two:如果项目为依赖项目的时候在App的 build.gradle 中添加如下代码:
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'

  • dependencies中添加:
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

如果是导入androidx就关联如下
   //View的依赖注入框架
implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'

PS:如果你是依赖调用R2代替成R

ButterKnife 优势

1. 强大的View绑定,Click事件处理功能以及资源内容,简化代码,提升开发效率;

2. 方便的处理Adapter里的ViewHolder绑定问题;

3. 运行时不会影响APP效率,使用配置方便;

4. 代码清晰,可读性强。

ButterKnife 的使用

首先先绑定layout

在activity中绑定:

ButterKnife.bind(this);

在fragment里面绑定:

protected Unbinder unbinder;
unbinder = ButterKnife.bind(this, mView);

在fragment解绑是调用

1.绑定单个view

@BindView(R.id.tv_recive_data)
TextView tvReciveData;

2.多个监听事件

@OnClick({R.id.bt_connect_bth, R.id.bt_send_xml_diesel, R.id.bt_send_xml_gasoline, R.id.bt_send, R.id.bt_clear_data})
public void onViewClicked(View view) {
    switch (view.getId()) {
        case R.id.bt_connect_bth:
            /*蓝牙连接*/
            break;
        case R.id.bt_send_xml_diesel:
            /*柴油车连接初始化*/
            break;
        case R.id.bt_send_xml_gasoline:
            /*汽油车连接初始化*/
            break;
        case R.id.bt_send:
            /* 发送检验码*/
            break;
        case R.id.bt_clear_data:
            /*清除接收的日志*/
            break;
    }
}

2.1单个监听
@OnClick(R.id.report_and_upload_btn)
public void onViewClicked() {
    showTestResultDialog();
}

3.checkBox radioButton状态改变监听

@OnCheckedChanged(R.id.cb_light)
void checkChange(CompoundButton buttonView, boolean isChecked) {
    if (buttonView.getId() == R.id.cb_light) {
        if (isChecked) {
            zXingView.openFlashlight(); // 打开闪光灯
        } else {
            zXingView.closeFlashlight(); // 关闭闪光灯
        }
    }
}
 /**
 * 性别选中事件
 * @param view
 * @param ischanged **/
 @OnCheckedChanged({R.id.male, R.id.female})
public void onRadioCheck(CompoundButton view, boolean ischanged) {
    switch (view.getId()) {
        case R.id.male:
            if (ischanged) {
                ToastUtils.showShort("男孩子哦");
            }
            break;
        case R.id.female:
            if (ischanged) {
                ToastUtils.showShort("女孩子哦");
            }
            break;
        default:
            break;
    }
}
    /**
     * 多个CheckBox的监听
     */
    @OnCheckedChanged({R.id.wjcb, R.id.dtcb, R.id.dpcb})
    public void checkBox(CompoundButton view, boolean isChange) {
        switch (view.getId()) {
            case R.id.wjcb:
                if (isChange) {
                    ToastUtils.normal("选择外检");
                }
                break;
            case R.id.dtcb:
                if (isChange) {
                    ToastUtils.normal("选择动态");
                }
                break;
            case R.id.dpcb:
                if (isChange) {
                    ToastUtils.normal("选择底盘");
                }
                break;
            default:
                break;
        }
    }

文章参考的地址:

https://blog.csdn.net/shenggaofei/article/details/78175428

https://blog.csdn.net/qq_36946446/article/details/83542314

官网:

https://gitee.com/lcb1992/butterknife

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值