1. 程式人生 > >android使用butterknife InjectView和BindView

android使用butterknife InjectView和BindView

Butter Knife 是一個專注於 Android 系統 View 的注入框架,
讓你從煩人的 findViewById 中解脫出來。同時還支援 View 的一些事件處理函式。
butterknife地址:https://github.com/JakeWharton/butterknife
以下介紹兩種實現button的方法

老版本方法(InjectView)

在app目錄下的build.gradle中新增如下依賴

dependencies {  
    compile 'com.jakewharton:butterknife:6.0.0'  
}  

在activity中新增按鍵

public class SimpleActivity extends Activity {  
    @InjectView(R.id.hello)  
    Button hello;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.simple_activity);  
        ButterKnife.inject(this
); } // hello的點選事件 @OnClick(R.id.hello) void sayHello() { Toast.makeText(this, "Hello, views!", LENGTH_SHORT).show(); }

新版本使用方法(bindView)

在module-level的build.gradle中新增如下依賴

apply plugin: 'android-apt'
dependencies {
  compile 'com.jakewharton:butterknife:8.0.1'
apt 'com.jakewharton:butterknife-compiler:8.0.1' }

在project-level的build.gradle中新增如下依賴

dependencies {
  classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
  }

在activity中的使用方法

public class SimpleActivity extends Activity {
  @BindView(R.id.hello) Button hello;
  @OnClick(R.id.hello) 
  public void sayHello() {
    Toast.makeText(this, "Hello, views!", LENGTH_SHORT).show();
  }  
  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_activity);
    ButterKnife.bind(this);
  }
}