• Android ButterKnife配置使用


    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
      }
  • 相关阅读:
    「ZJOI2019」开关
    「ZJOI2019」Minimax 搜索
    杨氏矩阵学习笔记
    「LibreOJ NOI Round #2」简单算术
    「LibreOJ NOI Round #2」小球进洞
    组合总和 II(力扣第40题)
    组合总和 I(力扣第39题)
    组合(力扣第77题)
    使用MapReduce解决蚂蚁森林第二题
    Hive练习--蚂蚁森林习题二
  • 原文地址:https://www.cnblogs.com/libertycode/p/5863231.html
Copyright © 2020-2023  润新知