俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些臃肿的代码中解脱出来。

首先看一下在Android Studio中引入ButterKnife步骤如下:

在项目上右键,选择Open Module Settings,如下:

ButterKnife依赖注入框架的引入和使用_android

选择APP->dependencies->“加号”->Library dependency如下:

ButterKnife依赖注入框架的引入和使用_xml_02

输入butterknife如下:

ButterKnife依赖注入框架的引入和使用_xml_03

选中目标点击OK,可以看出最新的ButterKnife已经升级到了8.2.1版本。还需要配置两个文件:

1.在project的build.gradle中

ButterKnife依赖注入框架的引入和使用_android_04

2.在module的build.gradle中

ButterKnife依赖注入框架的引入和使用_xml_05



ButterKnife依赖注入框架的引入和使用_点击事件_06

这时butterknife的环境就配置好了,可以运行测试一下:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello World!"
android:textSize="18sp" />
</RelativeLayout>

MainActivity.java如下:

package com.example.administrator.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {
@BindView(R.id.tv1)
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
tv1.setText("Hello ButterKnife");
}
}

调用@BindView传入TextView的id,然后在下面声明变量tv1,最后在onCreate方法中调用ButterKnife的bind方法绑定控件。

运行实例如下:

ButterKnife依赖注入框架的引入和使用_android_07

OK,届时butterknife引入成功!

下面看一下,引入Button的点击事件监听,布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello World!"
android:textSize="18sp" />
<Button
android:id="@+id/btn1"
android:text="BUTTON1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>

MainActivity.java:

@BindView(R.id.btn1)
Button btn1;
@OnClick(R.id.btn1)
public void test(View view) {
Toast.makeText(MainActivity.this, "test", Toast.LENGTH_SHORT).show();
}

@Onclick传入Button的id为Button设置点击事件监听,运行实例如下:

ButterKnife依赖注入框架的引入和使用_xml_08


谢谢关注我的微信公众号,觉得好可以分享到朋友圈哦.

ButterKnife依赖注入框架的引入和使用_xml_09