Android ButterKnife的简单例子
来源:互联网 发布:淘宝无线转换工具 编辑:程序博客网 时间:2024/05/01 11:07
ButterKnife是一个非常受欢迎的开源框架,ButterKnife官方git.
它实现了Android View的字段和方法绑定,它使用java注解(annotation)为使用者生成样板代码
1. 通过在字段上使用@BindView消除findViewById调用
2. 可以把多个view分组,使用ButterKnife的Action,Setter或Property接口一次操作所有这些view。
3. 通过使用@OnClick和其他方法注释方法来消除Listener的匿名内部类。
4. 通过在字段上使用资源注释消除资源查找(getString(R.string.xx))。
接下来我将用一个例子来让大家熟悉一下ButterKnife的使用:
首先我们在gradle中引入依赖库
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
然后在module的gradle中加入
apply plugin: 'com.neenbedankt.android-apt'compile 'com.jakewharton:butterknife:8.4.0' apt 'com.jakewharton:butterknife-compiler:8.4.0'
例子代码
public class ButterKnifeSampleActivity extends AppCompatActivity { //等于textView1 = (TextView)findViewById(R.id.test_text_view1) @BindView(R.id.test_text_view1) TextView textView1; @BindView(R.id.test_text_view2) TextView textView2; @BindView(R.id.show_btn) Button showBtn; @BindView(R.id.hide_btn) Button hideBtn; //等于helloStr = getString(R.string.hello_butterknife) @BindString(R.string.hello_butterknife) String helloStr; //等于showBtn.setOnClickListener(new OnClickListener()) @OnClick(R.id.show_btn) public void showViews() { //显示textView1和textView2 show(textView1, textView2); } @OnClick(R.id.hide_btn) public void hideViews() { //隐藏textView1和textView2 hide(textView1, textView2); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_navigation_view); //和当前界面的view root绑定 ButterKnife.bind(this); //给textView1和textView2设置text setText(helloStr, textView1, textView2); //property的使用,设置textView1的透明度 //Property<View, Float> property = View.ALPHA; ButterKnife.apply(textView1, View.ALPHA, 0.0f); } //批量设置text public static void setText(String value, TextView... views) { if (views != null) { ButterKnife.apply(views, SETTER_TEXT, value); } } //批量隐藏view public static void hide(View... views) { if (views != null) { ButterKnife.apply(Arrays.asList(views), ACTION_HIDE); } } //批量显示view public static void show(View... views) { if (views != null) { ButterKnife.apply(Arrays.asList(views), ACTION_SHOW); } } //Action实现一:hide操作 private static ButterKnife.Action<View> ACTION_HIDE = new ButterKnife.Action<View>() { @Override public void apply(View view, int index) { view.setVisibility(View.GONE); } }; //Action实现二:show操作 private static ButterKnife.Action<View> ACTION_SHOW = new ButterKnife.Action<View>() { @Override public void apply(View view, int index) { view.setVisibility(View.VISIBLE); } }; //Setter实现一:设置文本 private static ButterKnife.Setter<TextView, String> SETTER_TEXT = new ButterKnife.Setter<TextView, String>() { @Override public void set(@NonNull TextView view, String value, int index) { view.setText(value); } };}
布局代码如下:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_navigation_view" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/test_text_view1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="test_text_view1" /> <TextView android:id="@+id/test_text_view2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/test_text_view1" android:text="test_text_view2" /> <Button android:id="@+id/hide_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/test_text_view2" <Button android:id="@+id/show_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/hide_btn" android:layout_alignBottom="@+id/hide_btn" android:layout_toEndOf="@+id/hide_btn" android:layout_toRightOf="@+id/hide_btn" android:text="show" /></RelativeLayout>
0 0
- Android ButterKnife的简单例子
- Android注解框架(ButterKnife的简单使用)
- android butterknife框架的简单使用
- android-butterknife 简单实用
- Android-butterknife 简单使用
- 简单的butterknife使用方法
- ButterKnife的简单使用
- ButterKnife的简单使用
- Butterknife 的简单模拟
- Butterknife的简单使用
- ButterKnife的简单使用
- 简单的 Butterknife
- Android studio butterknife简单使用
- Android butterknife简单使用篇
- 最新Android 黄油刀(Butterknife)的简单使用
- Android Butterknife的使用
- Android ButterKnife的使用
- Android ButterKnife的使用方法
- Spring Boot 过滤器、监听器
- 林语堂:为什么现代教育培养不出有见识的人?
- 计网——各层功能
- UINavgationController中覆写preferredStatusBarStyle方法不执行的问题
- 你的26周岁,可还好?
- Android ButterKnife的简单例子
- ios NSPredicate用于两个数组筛选
- 重置mysql的root密码
- 华为软件开发云试用手记(一) 建立项目
- 搭建自己私人博客
- 微信公众号选择图片
- bat脚本切换jdk版本立即生效
- 洛谷 P1177 【模板】快速排序
- MATLAB class cell