配置您的项目级别build.gradle以包括android-apt插件:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1' } }
然后,android-apt在模块级别应用插件,build.gradle并添加ButterKnife依赖项:
apply plugin: 'android-apt' android { ... } dependencies { compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' }
注意:如果您使用的新Jack编译器具有2.2.0或更高版本,则不需要android-apt插件,而是可以annotationProcessor在声明编译器依赖项时将apt替换为。
为了使用ButterKnife批注,您不应忘记将它们绑定到onCreate()“活动”或onCreateView()“片段”中:
class ExampleActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 绑定注解 ButterKnife.bind(this); // ... } } // 要么 class ExampleFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View view = inflater.inflate(getContentView(), container, false); // 绑定注解 ButterKnife.bind(this, view); // ... return view; } }
Sonatype的快照存储库中提供了开发版本的快照。
以下是在图书馆项目中使用ButterKnife所必须采取的其他步骤
要在图书馆项目中使用ButterKnife,请将插件添加到您的项目级别build.gradle:
buildscript { dependencies { classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1' } }
…然后通过在库级顶部添加以下行来应用于模块build.gradle:
apply plugin: 'com.android.library' // ... apply plugin: 'com.jakewharton.butterknife'
现在,请确保在所有ButterKnife批注中使用R2而不是R。
class ExampleActivity extends Activity { // 将xml资源绑定到他们的视图 @BindView(R2.id.user) EditText username; @BindView(R2.id.pass) EditText password; // 从可绘制,字符串,尺寸,颜色绑定资源 @BindString(R.string.choose) String choose; @BindDrawable(R.drawable.send) Drawable send; @BindColor(R.color.cyan) int cyan; @BindDimen(R.dimen.margin) Float generalMargin; @OnClick(R.id.submit) public void submit(View view) { // TODO将数据提交到服务器... } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); // 待办事项继续 } }