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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章