Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用

ButterKnife 概述

ButterKnife是大神JakeWharton写的一个View注入框架,目前在Android开发中被广泛使用,其机制是在编译时生成新的class文件,比起运行时用反射的注入框架,其性能更好,在运行时对程序的性能几乎没有任何影响。
官网:https://github.com/JakeWharton/butterknife

使用前准备

添加依赖

首先在Projectbuild.gradle文件中的dependencies节点下添加如下代码

classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.1'

在这里插入图片描述
然后在Modulebuild.gradle文件中添加如下代码
在顶部apply 下添加一行apply plugin: 'com.jakewharton.butterknife'

android 节点下添加Java8

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
}

dependencies 节点下添加依赖

    implementation 'com.jakewharton:butterknife:10.2.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'

具体添加如下:
在这里插入图片描述

ButterKnife绑定

Activity绑定

Activity中使用在onCreate方法中添加

//绑定activity  
  ButterKnife.bind(this);

在这里插入图片描述

Fragment绑定

Fragment中绑定的代码如下,onCreateView方法中绑定,onDestroy方法中解绑

public class BlankFragment extends Fragment {

    private Unbinder unbinder;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
      View view =  inflater.inflate(R.layout.fragment_blank, container, false);
        unbinder = ButterKnife.bind(this, view);
        return view;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        unbinder.unbind();
    }
}

RecyclerView Adapter绑定

RecyclerView中在ViewHolder的构造方法中绑定即可

    class  Myholder extends RecyclerView.ViewHolder{
        TextView mTextView;
        public Myholder(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
            mTextView = itemView.findViewById(R.id.textView);
        }
    }

基本用法

控件注解

控件注解在控件上加上@BindView()即可,括号里填上控件的id

@BindView(R.id.username)
EditText mUsernameEdit;
@BindView(R.id.password)
EditText mPasswdEdt;

事件注解

单击事件绑定

    @OnClick({R.id.button, R.id.button2})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.button:
                break;
            case R.id.button2:
                break;
        }
    }

长按事件绑定

    @OnLongClick({R.id.button, R.id.button2})
    public void onViewLongClicked(View view) {
        switch (view.getId()) {
            case R.id.button:
                break;
            case R.id.button2:
                break;
        }
    }

其他可以事件值:@OnCheckedChanged@OnEditorAction@OnFocusChange@OnItemClick@OnTouch

资源注解

绑定字符串

 @BindString(R.string.app_name)  
 String mString;

其他可以绑定的值:@BindArray@BindBitmap@BindBool@BindColor@BindDimen@BindDrawable@BindFloat@BindInt

ButterKnife 插件

通过ButterKnife插件的使用,我们能更加方便的添加ButterKnife的注解

插件添加

添加方法如下,在Android Studio 插件市场中搜索Android ButterKnife zelezny
在这里插入图片描述

插件使用

自动生成View注解

onCreate方法中的 布局文件中 右击弹出窗口,选择 Generate选项,
在这里插入图片描述

自动生成点击事件注解

点击事件注解跟前面的View注解类似,不同的是需要在弹框中勾选OnClick按钮

在这里插入图片描述

自动生成ViewHolder

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Teacher.Hu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值