关闭

Butter Knife 配置和使用及插件

标签: ButterKnifeZelezny注解ButterKnife配置使用ButterKnife插件
464人阅读 评论(0) 收藏 举报
分类:

目前最新的版本是8.4.0的

官网:http://jakewharton.github.io/butterknife/

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

配置:

1.在app下的build.gradle中添加apply和compile

apply plugin: 'com.android.application'
<strong>apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'com.jakewharton.butterknife'</strong>

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"

    aaptOptions {
        cruncherEnabled = false
        useNewCruncher = false
    }
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.2.1'
    testCompile 'junit:junit:4.12'
    
    <strong>compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'</strong>

}
2.在project下的build.gradle中添加classpath

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        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
}
3.在Activity中配置并使用

class ExampleActivity extends Activity {
 @BindView(R.id.title) TextView title
  @BindView(R.id.subtitle) TextView subtitle;
  @BindView(R.id.footer) TextView footer;

  @Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_activity);
    ButterKnife.bind(this);
    // TODO Use fields...
  }
}

4.绑定Button,参数可选

<span style="font-size:12px;">@OnClick(R.id.submit)
public void submit(View view) {
  // TODO submit data to server...
}</span>
@OnClick(R.id.submit)
public void submit() {
  // TODO submit data to server...


5.绑定ViewHolder
static class ViewHolder {
    @BindView(R.id.title) TextView name;
    @BindView(R.id.job_title) TextView jobTitle;

    public ViewHolder(View view) {
      ButterKnife.bind(this, view);
    }
  }
6.绑定资源

class ExampleActivity extends Activity {
@BindString(R.string.title) String title;
@BindDrawable(R.drawable.graphic) Drawable graphic;
@BindColor(R.color.red) int red; // int or ColorStateList field
@BindDimen(R.dimen.spacer) Float spacer; // int (for pixel size) or float (for exact value) field
  // ...
}
7.代码混淆

-keep class butterknife.** { *; }  
-dontwarn butterknife.internal.**  
-keep class **$$ViewBinder { *; }  
  
-keepclasseswithmembernames class * {  
    @butterknife.* <fields>;  
}  
  
-keepclasseswithmembernames class * {  
    @butterknife.* <methods>;  
}
8.插件Zelezny

可视化快速生产view

安装Preferences → Plugins → Browse repositories and search for ButterKnife Zelezny

或Preferences → Plugins → Install plugin from disk

GitHub地址:https://github.com/avast/android-butterknife-zelezny

使用(图是官网的):

鼠标放在布局上右键——>Generate——Generate ButterKnife Injections





1
0
查看评论

AS上butterknife插件安装与使用

在android 开发中,为了提高开发效率,使用框架是必不可少的。有人选择自己开发框架使用,也有人选择使用第三方开源的框架。个人喜欢的框架是KJFrameForAndroid(一个非常好用的框架)。今天在这里介绍的是butterknife,一款方便的注解框架,帮我们有晓得解决了findViewByI...
  • txadf
  • txadf
  • 2015-12-26 20:54
  • 1749

Butter Knife 配置及使用入门详解

Butter Knife 配置及使用入门详解简介 Butter Knife 是一个工具, 可以通过注解(Annotation)的形式绑定Android中的各种资源, 例如: 控件, string, color, bitmap 等, 减少像 findViewById(), setOnClickLi...
  • u013647382
  • u013647382
  • 2016-07-23 10:23
  • 9410

Android Studio 中关于 ButterKnife的配置及使用

ButterKnife 优势: 1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率 2.方便的处理Adapter里的ViewHolder绑定问题 3.运行时不会影响APP效率,使用配置方便 4.代码清晰,可读性强 使用心得: ...
  • qq_35980005
  • qq_35980005
  • 2017-10-11 19:52
  • 115

Android注解框架Dagger ,Butterknife 和AndroidAnnotations以及RoboGuice的比较

http://stackoverflow.com/questions/24351817/dagger-and-butter-knife-vs-android-annotations 这片文章的答案,简单的介绍了三种注解框架(Dagger,Butterknife以及AA)的异同以及简单的比较。Rob...
  • Mrljdx
  • Mrljdx
  • 2015-08-08 22:14
  • 1165

ButterKnife使用手册中文

简介 ButterKnife意为“黄油刀”,意思是此开源库可以让你的应用开发过程像用刀切黄油一样干净利落。此库的核心功能是通过注解来实现视图的注入,从而在代码中避免冗余的方法调用和丑陋的内部类监听器。 简单的理解“绑定”的概念,就是将View和任意一个对象相互关联,从而在该对象中,不用f...
  • JavaAndroid730
  • JavaAndroid730
  • 2016-11-18 23:14
  • 301

butterknife 注解成功但运行报空指针错误

开发项目的时候使用butterknife注解结果包nullpoint错误,根据官方文档这样在gradle配置就不会出错 apply plugin: 'com.android.application' android {  &#...
  • yj82297061
  • yj82297061
  • 2016-07-19 10:14
  • 946

Butter Knife的配置和使用

butterknife which uses annotation processing to generate boilerplate code for you. Jar包下载。   一、图文配置Eclipse 1、将jar放于工程的libs目录下 ...
  • yersterday
  • yersterday
  • 2014-10-15 13:42
  • 503

ButterKnife实现(事件初始化)<下>

一个星期没更新博客了,虽然目前博客很乱!最近比较忙,视力有些下降,不过ButterKnife的事件实现终算完成了! 新博客地址 ButterKnifeDemo实现(注解完善,方便阅读) 目标之所以butterknife可以实现点击view的时候调用注解过的方法,其实是在点击的回调方法中调...
  • yuanyang5917
  • yuanyang5917
  • 2016-04-12 18:04
  • 536

Butter Knife的使用

转自:http://blog.csdn.net/lukejunandroid/article/details/26462807 介绍:注释字段用@ InjectView和view id找到在布局视图的ID并自动施放相应的视图, 我们经常在开发中需要写如下代码: class Exam...
  • hello_zhou
  • hello_zhou
  • 2016-09-17 02:30
  • 145

浅析ButterKnife的实现 (一) —— 搭建开发框架

ButterKnife 的大名相信做Android开发的都应该知道,如果你还不知道那只能说明你平时都没关注过开源项目,优秀的开源项目对于开发来说帮助是巨大的,而学习优秀的开源项目对个人的提升帮助也是巨大的。ButterKnife 通过注解的方式帮助我们处理诸如 findViewById()...
  • github_35180164
  • github_35180164
  • 2016-08-13 15:42
  • 2133
    个人资料
    • 访问:89882次
    • 积分:2082
    • 等级:
    • 排名:千里之外
    • 原创:107篇
    • 转载:15篇
    • 译文:0篇
    • 评论:31条
    最新评论