ButterKnife使用詳解

之前的話常常使用findViewById()來綁定佈局中ID,這樣寫不只麻煩並且尚未什麼效率,今天推薦一款由JakeWharton大神寫的框架Butterknife用來綁定ID。

logo

導入依賴

既然是是一個第三方的開發庫,讓先讓咱們把導入項目中:
Module的build.gradle文件中:git

apply plugin: 'com.jakewharton.butterknife'
dependencies {
 compile 'com.jakewharton:butterknife:8.6.0'
 annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
}

Project的build.gradle文件中:github

buildscript {
  repositories {
    mavenCentral()
   }
  dependencies {
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.6.0'
  }
}

這裏須要特殊說明一下,若是按照官方網站上面的方式導入的話,會報這個錯誤(須要升級你的Gradle插件):
To use the DSL implementation() you have to use:
因此只用按照我上面的方式導入便可。app

使用方法

  • 綁定View
@BindView(R.id.tv_butter)
    TextView tv_butter;
    @BindView(R.id.et_butter)
    EditText et_butter;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_butter);
        //首先將ButterKnife注入,這行代碼要在setContentView()以後執行。
        ButterKnife.bind(this);
        tv_butter.setText("綁定TextView");
        et_butter.setText("綁定EditText");
    }
  • 綁定事件
@OnClick(R.id.btn_butter)
    public void onBtnClick(View view) {
        Toast.makeText(this, "btn_butter被點擊了", Toast.LENGTH_SHORT).show();
    }
  • 綁定資源
@BindString(R.string.app_name)
    String app_name;
 @BindColor(R.color.colorAccent)
    int colorAccent;

還有不少各類場景下的綁定,其實套路都同樣,這裏主要舉例三個應用場景。框架

Zelezny插件

若是你像我同樣懶的連這些代碼都不想寫的話,下面推薦一款Zelezny插件(Android Studio),這個插件會自動在佈局中查找控件的id,而後直接綁定,你說爽不爽。maven

  • 安裝插件

安裝插件

  • 使用插件

在代碼中雙擊選中佈局
在佈局中選中
點擊生成代碼ide

//經過插件生成的代碼
    @BindView(R.id.tv_butter)
    TextView tvButter;
    @BindView(R.id.et_butter)
    EditText etButter;
    @BindView(R.id.btn_butter)
    Button btnButter;
OK,接下來就讓咱們愉快的使用這個第三方插件吧。

最近我會寫不少關於Android經常使用控件的使用,裏面都是一些頗有用的知識,若是你感受有用,請給我一個star,謝謝。實例代碼佈局

相關文章
相關標籤/搜索