ButterKnife插件的安装与使用

来源:互联网 发布:知行理工忘记密码 编辑:程序博客网 时间:2024/06/06 03:05

1.ButterKnife插件的安装

插件名称:Android ButterKnife zelezny

首先打开设置界(command+逗号)——>Plugins——>

点击Browse Respositories——>搜索Android ButterKnife zelezny ——>点击安装,重启Android studio即可

这里写图片描述

这里写图片描述

ok,安装完毕啦!

2.ButterKnife的简介

ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码。

GitHub地址:https://github.com/JakeWharton/butterknife

3.ButterKnife的优势

  • 代码清晰,可读性强。
  • 简化Adapter中ViewHolder绑定。
  • 运行时不会影响APP效率,使用配置方便。
  • View绑定和Click事件处理功能,简化代码,提高开发效率。

4.ButterKnife添加依赖

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:25.1.0'testCompile 'junit:junit:4.12'compile 'com.jakewharton:butterknife:8.4.0'annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'}

在app->build gradle中添加依赖

compile ‘com.jakewharton:butterknife:8.4.0’
annotationProcessor ‘com.jakewharton:butterknife-compiler:8.4.0’

在整个项目->build gradle中添加依赖

dependencies {classpath 'com.android.tools.build:gradle:2.2.3'classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'}

添加依赖
classpath ‘com.jakewharton:butterknife-gradle-plugin:8.4.0’

点击按钮:Sync Projects with Gradle Files重新编译即可

5.ButterKnife的使用

在Activity中

setContentView(R.layout.activity_main);Unbinder mBind = ButterKnife.bind(MainActivity.this);
 @Override    protected void onDestroy() {        super.onDestroy();        mBind.unbind();    }

在Fragment中

View view = inflater.inflate(R.layout.fragment_main, container, false);Unbinder mBind = ButterKnife.bind(this, view);
  @Override    public void onDestroyView() {        super.onDestroyView();        mBind.unbind();    }

使用快捷键:

选中布局文件,然后command+n,不说了,直接上图:
这里写图片描述

@BindView

@BindView(R.id.text1)TextView mText1;
mText1.setText(name);

@BindViews

@BindViews({R.id.text1,R.id.text2})List<TextView> mTextViews;
mTextViews.get(0).setText("测试一");mTextViews.get(1).setText("测试二");

@BindArray

@BindArray(R.array.student)String [] students;

res——>values——>arrays.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="student">        <item>小李</item>        <item>小周</item>        <item>小张</item>    </string-array></resources>
for (int i = 0; i < students.length; i++){    mTextViews.get(1).setText(students[i]);}

@BindString

@BindString(R.string.app_name)String name;
mText1.setText(name);

@BindColor

@BindColor(R.color.textColor)int red;
mText2.setTextColor(red);

@BindBitmap

@BindBitmap(R.mipmap.my)Bitmap mBitmap;
mImg.setImageBitmap(mBitmap);

@OnClick

@OnClick(R.id.button1)public void method1(){startActivity(new Intent(MainActivity.this,ThiredActivity.class));}

@OnLongClick

@OnLongClick(R.id.button2)public boolean method2(){Toast.makeText(this, "按钮2被长按了", Toast.LENGTH_SHORT).show();return true;}

@OnItemClick

@BindView(R.id.list_person)ListView mListPerson;
@OnItemClick(R.id.list_person)public void onItemClick(int position) {Toast.makeText(this, list.get(position).getName() + "ListView的item被点击啦!", Toast.LENGTH_SHORT).show();}

@OnItemLongClick

@OnItemLongClick(R.id.list_person)public boolean onItemLongClick(View view, int position) {Toast.makeText(this, list.get(position).getName() + "被--长按--啦!", Toast.LENGTH_SHORT).show();return true;}

adapter中的ViewHolder

static class ViewHolder {     @BindView(R.id.tv_name)     TextView mTvName;     ViewHolder(View view) {        ButterKnife.bind(this, view);     }}

6.源码下载

源码下载:https://github.com/zeke123/ButterKnifeDemo

0 0
原创粉丝点击