butterknife README

The project's README from github.com/JakeWharton/butterknife. As one markdown file: README.md.

Butter Knife

Attention: This tool is now deprecated. Please switch to view binding. Existing versions will continue to work, obviously, but only critical bug fixes for integration with AGP will be considered. Feature development and general bug fixes have stopped.

Logo

Field and method binding for Android views which uses annotation processing to generate boilerplate code for you.

class ExampleActivity extends Activity {
  @BindView(R.id.user) EditText username;
  @BindView(R.id.pass) EditText password;

  @BindString(R.string.login_error) String loginErrorMessage;

  @OnClick(R.id.submit) void submit() {
    // TODO call server...
  }

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

For documentation and additional information see the website.

Remember: A butter knife is like a dagger, only infinitely less sharp.

Download

android {
  ...
  // Butterknife requires Java 8.
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  implementation 'com.jakewharton:butterknife:10.2.3'
  annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
}

If you are using Kotlin, replace annotationProcessor with kapt.

Snapshots of the development version are available in Sonatype's snapshots repository.

Library projects

To use Butter Knife in a library, add the plugin to your buildscript:

buildscript {
  repositories {
    mavenCentral()
    google()
  }
  dependencies {
    classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
  }
}

and then apply it in your module:

apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'

Now make sure you use R2 instead of R inside all Butter Knife annotations.

class ExampleActivity extends Activity {
  @BindView(R2.id.user) EditText username;
  @BindView(R2.id.pass) EditText password;
...
}

License

Copyright 2013 Jake Wharton

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

butterknife (JakeWharton/butterknife)

Searching Database…

这是什么?Butter Knife 是一个 Android 库,用于把视图和回调绑定到字段和方法上,它通过注解处理自动生成那些重复的样板代码。
在代码里怎么用?你只需给字段和方法加注解,而不用手写查找代码:@BindView 可以省去 findViewById 调用,@OnClick 可以替代匿名监听器类,资源注解则能省去资源查找的代码。
怎么把它加到 Android 项目里?把 Butter Knife 添加为 Gradle 依赖,并通过 annotationProcessor 接入;Kotlin 项目则改用 kapt。
它还在维护吗?新项目是不是不该用了?该项目已弃用:功能开发和常规 bug 修复都已停止,只处理与 AGP 集成相关的关键修复。README 建议改用 view binding。
除了绑定单个视图,还能做什么?你可以把多个视图放到一个列表或数组里,然后通过 action、setter 或属性一次性对它们统一操作。
在 Android library 模块里能用吗?可以——把 Butter Knife 插件加到 buildscript,在模块中应用它,然后在所有 Butter Knife 注解里用 R2 代替 R。
为什么叫 Butter Knife?README 里开了个玩笑:黄油刀就像 Dagger(匕首),只是刀刃钝了无数倍——这是对 Dagger 依赖注入库的一个俏皮致敬。
Size
3.8 MB
Stars
25.3K
Updated
CommitSep 04
Age
13y
Commits · 90 Days