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

本文目录

  • ButterKnife 概述
  • 使用前准备
    • 添加依赖
    • ButterKnife绑定
      • Activity绑定
      • Fragment绑定
      • RecyclerView Adapter绑定
  • 基本用法
    • 控件注解
    • 事件注解
    • 资源注解
  • ButterKnife 插件
    • 插件添加
    • 插件使用
      • 自动生成View注解
      • 自动生成点击事件注解
      • 自动生成ViewHolder

ButterKnife 概述

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

使用前准备

添加依赖

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

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

Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用_第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'

具体添加如下:
Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用_第2张图片

ButterKnife绑定

Activity绑定

Activity中使用在onCreate方法中添加

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

Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用_第3张图片

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
Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用_第4张图片

插件使用

自动生成View注解

onCreate方法中的 布局文件中 右击弹出窗口,选择 Generate选项,
Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用_第5张图片

自动生成点击事件注解

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

Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用_第6张图片

自动生成ViewHolder

Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用_第7张图片

你可能感兴趣的:(Android,#,Android,开源框架,#,Android基础)