【Android笔记】v10.2.3最新版ButterKnife的配置及使用

ButterKnife是一个专注于Android系统的View注入框架,是大神JakeWharton的力作。有了ButterKnife,可以很轻松得简化代码,如避免重复手动输入findViewById找View对象等,这简直是“手废党”的福音啊~

代码已在GitHub开源:JakeWharton/butterknife.

本人环境:

Android Studio v4.0.1,
Gradle v6.1.1,
SDK 为Android 10.0+ ®.

1. Android Studio添加依赖

1.1 build.gradle(Module:app)文件

共3处。

第一处:文件顶部添加插件。

//Butterknife
apply plugin: 'com.jakewharton.butterknife'

第二处:添加 compileOptions.

android {
    ...
    //Butterknife
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

第三处:添加 dependencies.

dependencies {
    ...
    // Butterknife
    implementation 'com.jakewharton:butterknife:10.2.3'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
}

1.2 build.gradle(Project:xxx)文件

共1处,添加 classpath.

buildscript {
    repositories {
        google()
        jcenter()
        //mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.0.1"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        //butterknife!!!添加这一条classpath
        classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
    }
}

2. Android Studio安装插件

菜单栏File-Settings-Plugins,在搜索框搜索 butterknife,选择“Android ButterKnife Zelezny” Install,等待几秒,按提示重启AS即可。

在这里插入图片描述

3. ButterKnife 在项目中应用

3.1 @BindView() 绑定id

@BindView 一键生成全部需要 findViewById() 的控件对象。

首先,右键 setContentView() 设置的布局xml名字,点击Generate.

在这里插入图片描述
点击 Generate Butterknife Injections.

在这里插入图片描述

选择需要引用的控件对象,还可以选择是否生成对应 OnClick 函数。其变量名也智能生成,可以看到 ID 到 Variable Name 的转换,自动去掉下划线且将下划线后的第一个字母大写化,符合Java变量名“小驼峰”命名规则,本人认为这点真的非常nice!

全部确定好后,Confirm一键生成对象引用代码,直接拿来用即可。

在这里插入图片描述
类头部自动生成对象:

@BindView(R.id.edit_city)
EditText editCity;
@BindView(R.id.btn_simAlert)
Button btnSimAlert;

类尾部自动生成方法:

@OnClick(R.id.btn_comAlert)
public void onViewClicked() {
}

妙不可言~

3.2 @OnClick Button点击事件

3.3 @OnClick RadioButton点击事件

3.4 @OnCheckedChanged CheckBox点击事件

3.5 @OnPageChange ViewPager事件监听

(相关例子后续会再更新)

更多用法参考:

ButterKnife使用方法详解
Android Butterknife(黄油刀) 使用方法总结

使用ButterKnife,需要进行以下步骤: 1. 在项目的build.gradle文件中添加ButterKnife的依赖: ```groovy dependencies { implementation 'com.jakewharton:butterknife:10.2.3' annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' } ``` 2. 在需要使用ButterKnife的Activity或Fragment中,使用`@BindView`注解来绑定视图元素。 ```java public class MainActivity extends AppCompatActivity { @BindView(R.id.textView) TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); // 现在可以直接使用textView了 textView.setText("Hello ButterKnife!"); } } ``` 3. 调用`ButterKnife.bind(this)`方法来完成视图的绑定。这通常是在Activity的`onCreate()`方法中进行。 4. 在需要为视图设置点击事件、长按事件等的地方,使用`@OnClick`、`@OnLongClick`等注解来定义相应的事件处理方法。 ```java public class MainActivity extends AppCompatActivity { @BindView(R.id.button) Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); // 设置点击事件处理方法 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 处理点击事件 } }); } @OnClick(R.id.button) void onButtonClick() { // 处理点击事件,使用注解方式 } @OnLongClick(R.id.button) boolean onButtonLongClick() { // 处理长按事件,使用注解方式 return true; } } ``` 这样,你就可以使用ButterKnife来简化视图绑定和事件处理的工作了。记得在合适的时机调用`ButterKnife.unbind(this)`方法来解绑视图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值