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

在这里插入图片描述

原创文章 27 获赞 75 访问量 9005

猜你喜欢

转载自blog.csdn.net/huweiliyi/article/details/105767533