Android studio安装并使用Butterknife插件

一、安装Butterknife插件

打开android studio。点击file–>settings.打开设置页面,找到 Plugins插件这个项,然后右边搜索 Android Butterknife Zelezny 进行安装插件,安装完,重启android studio。

二、在android studio中配置butterknife

1、打开Project的build.gradle,添加依赖:

classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'

完整如下:

buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2、打开App层级的build.gradle,添加依赖:

implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

完整如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "29.0.1"
    defaultConfig {
        applicationId "com.example.cashier"
        minSdkVersion 22
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
}

3、打开AndroidManifest.xml,在application中添加:

tools:replace="android:appComponentFactory"
tools:ignore="GoogleAppIndexingWarning"

完整如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.cashier">

    <application tools:replace="android:appComponentFactory"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

4、取消勾选Only sync the active variant
File → Settings → Experimental → Gradle → Only sync the active variant

5、sync now

三、Butterknife插件的使用

1、布局文件activity_main.xml中添加两个按钮,完整如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_bt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button1"
        tools:ignore="MissingConstraints" />

    <Button
        android:id="@+id/button_bt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button2"
        tools:ignore="MissingConstraints" />

</android.support.constraint.ConstraintLayout>

2、在MainActivity中,选中R.layout.activity_main中的activity_main,按鼠标右键------->点击Generate------->点击最下面的Generate Butterknife Injections------->勾选两个按钮和onclick,生成后的代码:

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.button_bt1)
    Button buttonBt1;
    @BindView(R.id.button_bt2)
    Button buttonBt2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }

    @OnClick({R.id.button_bt1, R.id.button_bt2})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.button_bt1:
                break;
            case R.id.button_bt2:
                break;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/lojloj/article/details/98181393