ButterKnife在GitHub的地址:https://github.com/JakeWharton/butterknife
最新的版本是:8.4.0
app 模块的build.gradle:
apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' apply plugin: 'com.jakewharton.butterknife' android { compileSdkVersion 24 buildToolsVersion "24.0.0" defaultConfig { applicationId "com.example.liberty.hteach" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.0.0' // compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7' compile 'com.android.support:design:24.0.0' compile 'com.jakewharton:butterknife:8.4.0' apt 'com.jakewharton:butterknife-compiler:8.4.0' testCompile 'junit:junit:4.12' compile 'com.android.support:support-annotations:24.0.0' }
项目build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { // jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0-rc2' classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
MainActivity:
public class MainActivity extends AppCompatActivity { // private TabLayout tabLayout; // private ViewPager viewPager; @BindView(R.id.viewPager) ViewPager viewPager; @BindView(R.id.tabs) TabLayout tabLayout; @BindArray(R.array.titles) String []titles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // viewPager= (ViewPager) findViewById(R.id.viewPager); // tabLayout= (TabLayout) findViewById(R.id.tabs); ButterKnife.bind(this);
}
}
在新的8.4版本中去除了unbind方法
Unbinder mUnbinder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); mUnbinder=ButterKnife.bind(this); //保存引用 } @Override protected void onDestroy() { super.onDestroy(); mUnbinder.unbind(); //释放所有绑定的view }