ButterKnife与BindView使用详解

2023-05-16

ButterKnife与BindView使用详解

ButterKnife的优势

具有强大的view绑定和click事件处理能力
方便处理Adapter里的viewHolder绑定问题
运行时不会影响app效率,配置方便
代码清晰,可读性强、

使用方法以及注意事项:

在Activity中ButterKnife.bind(this);必须在setContentView();之后,且父类bind绑定后,子类不需要再bind
在Fragment中ButterKnife.bind(this, view);
在Adapter中ButterKnife.bind(this, view);
属性布局不能使用private、static修饰

配置方法

先在application的gradle中加入//后内容

 dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
   //     classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
    }
1
2
3
4
再在app的gradle中加入//后内容

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])
    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:28.0.0'
    testCompile 'junit:junit:4.12'
 //   implementation 'com.jakewharton:butterknife:8.5.1'
 //   annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

}
1
2
3
4
5
6
7
8
9
10
11
12
绑定注解

@BindView---->绑定一个view;id为一个view 变量
@BindView(R.id.tv_fm1)
TextView tvFm1;

@BindViews ---->绑定多个view;id为一个view的list变量
@BindViews({ R.id.btn1,R.id.btn2 })
List buttons;

@BindArray---->绑定string里面array数组;
@BindArray(R.array.city )
String[] citys ;

@BindBitmap---->绑定图片资源为Bitmap;
@BindBitmap(R.mipmap.wifi )
Bitmap bitmap;

@BindBool ---->绑定boolean值

@BindColor ---->绑定color;
@BindColor(R.color.colorAccent)
int black;

@BindDimen ---->绑定Dimen;
@BindDimen(R.dimen.borth_width)
int mBorderWidth;

@BindDrawable ----> 绑定Drawable;
@BindDrawable(R.drawable.test_pic)
Drawable mTestPic;

@BindFloat ---->绑定float

@BindInt ---->绑定int

@BindString ---->绑定一个String id为一个String变量;
@BindString(R.string.app_name )
String meg;
如下代码即使用@BindView和一个视图ID注释字段 ,Butter Knife自动找到并把相应的视图布局。

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);
  }
}
1
2
3
4
5
6
7
8
9
10
上面代码相当于:

public void bind(ExampleActivity activity) {
  activity.subtitle = (TextView) activity.findViewById(R.id.subtitle);
  activity.footer = (TextView) activity.findViewById(R.id.footer);
  activity.title = (extView) activity.findViewById(R.id.title);
}
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ButterKnife与BindView使用详解 的相关文章

  • ViewBinding和ButterKnife

    一 ViewBinding和ButterKnife比较 xff1a 传送门 1 ButterKnife一个好处就是不用写findViewById xff0c 另一个好处就是不用写setOnClickListener之类的 xff0c 满屏幕
  • Android Handler使用详解

    handler是android给我们提供用来更新UI的一套机制 xff0c 也是一套消息处理的机制 xff0c 我们可以发送消息 xff0c 也可以通过它处理消息 它最根本的目的就是解决多线程并发问题 xff0c 假设如果在一个Activi
  • tmux 使用详解

    什么是 tmux tmux 是一个终端复用工具 xff0c 它允许用户在一个终端窗口中创建多个会话 xff0c 并在这些会话之间切换 这使得用户可以在同一终端窗口中同时运行多个命令 xff0c 而不必打开多个终端窗口 安装 tmux 在 L
  • Android studio代码风格设置注释@BindView(R.id.topbar)为一行显示

    看QMUI官方的代码 xff0c 64 BindView R id topbar QMUITopBar mTopBar 都是一行显示 xff0c 但是到我自己的项目中时 xff0c 总是会格式化成2行 xff0c 变成 xff1a 64 B
  • Android Studio3.5.2使用@BindView代替findViewById

    使用findViewById太繁琐了 xff0c 64 BindView能够很好的减少一些不必要的工作 1 在build grable Moudle app 中加入 implementation 39 com jakewharton but
  • Log4Net使用详解(续)

    说明自从上次在2008年在博客上发表过有关log4net的用法介绍文章之后 xff08 网址 xff1a http blog csdn net zhoufoxcn archive 2008 03 26 2220533 aspx xff09
  • ButterKnife与BindView使用详解

    ButterKnife与BindView使用详解 ButterKnife的优势 具有强大的view绑定和click事件处理能力 方便处理Adapter里的viewHolder绑定问题 运行时不会影响app效率 xff0c 配置方便 代码清晰
  • Qt QMessageBox使用详解

    本文详细的介绍了QMessageBox控件的各种操作 xff0c 例如 xff1a 消息提示框的使用 判断消息提示框的按钮 标准图标和自定义图标 定时关闭 自定义样式等操作 本文作者原创 xff0c 转载请附上文章出处与本文链接 Qt QM
  • OKHttp使用详解

    1 简介 OkHttp 是一个默认高效的 HTTP 客户端 xff1a HTTP 2 支持允许对同一主机的所有请求共享一个套接字 连接池减少了请求延迟 xff08 如果 HTTP 2 不可用 xff09 透明 GZIP 缩小了下载大小 响应
  • SQLiteOpenHelper使用详解

    SQLiteOpenHelper 的子类 xff0c 至少需要实现三个方法 xff1a 1 构造函数 调用父类 SQLiteOpenHelper 的构造函数 这个方法需要四个参数 xff1a 上下文环境 xff08 例如 xff0c 一个
  • PyTorch:Dataset()与Dataloader()的使用详解

    目录 1 Dataset类的使用 2 Dataloader类的使用 3 总结 Dataset类与Dataloader类是PyTorch官方封装的用于在数据集中提取一个batch的训练用数据的接口 xff0c 其实我们也可以自定义获取每个ba
  • fork()使用详解

    其他参考 xff1a linux中fork xff08 xff09 函数详解 一 fork入门知识 进程的定义 xff1a 进程是一个执行中的程序的实例 xff0c 是系统进行资源分配和调度的一个独立单位 PCB是进程存在的唯一标识 PCB
  • Postman使用详解

    一 Postman背景介绍 用户在开发或者调试网络程序或者是网页B S模式的程序的时候是需要一些方法来跟踪网页请求的 xff0c 用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具 今天给大家介绍的这款网页调试工具不仅可以
  • HttpUrlConnection使用详解

    一 xff0c HttpURLconnection的介绍 在Android开发中网络请求是最常用的操作之一 xff0c Android SDK中对HTTP 超文本传输协议 也提供了很好的支持 xff0c 这里包括两种接口 1 标准Java接
  • mysql-mysqlbinlog的使用详解

    一 背景 二进制日志在MySQL数据库中有着至关重要的作用 xff0c 而读取二进制日志的工具就显得同样重要了 xff0c 官方的mysqlbinlog就是读取二进制日志的工具 xff0c 这里就结合官网和自己的实践整理一下 xff08 P
  • 片段错误中的黄油刀@bind

    我按照网站上的说明进行操作 http jakewharton github io butterknife http jakewharton github io butterknife 错误 java lang RuntimeExceptio
  • Dagger 和 Butter Knife 与 Android 注释

    我正在评估 Android 应用程序的依赖注入 DI 框架 最有力的竞争者是 Dagger 带有黄油刀 和 Android Annotations 据我了解 Dagger 和 ButterKnife 是同源的 而且是相辅相成的 以下是我正在
  • 黄油刀不会注射

    我正在尝试使用牛油刀 http jakewharton github io butterknife 这些天我在 Android Studio 工作 但它因一些奇怪的问题而让我失望 我曾经在 eclipse 上尝试过 Butter Knife
  • 使用 ButterKnife 库在 1 个片段中包含 2 个不同的视图

    我目前正在尝试使用 Android 的 ButterKnife 库来处理一些样板代码 https github com JakeWharton butterknife https github com JakeWharton butterk
  • 我应该在 ViewHolder 中哪里取消绑定 ButterKnife 8.x.x?

    我有一个使用 ButterKnife 注释的 RecycleView ViewHolder 类 我的代码也应该在这个 ViewHolder 类中 unbind 吗 public class AView extends RecyclerVie

随机推荐

  • 生信刷题之ROSALIND——Part 2

    目录 1 Counting Point MutationsProblemSample DatasetSample OutputCodeOutput 2 Mendel 39 s First LawProblemSample DatasetSa
  • 生信刷题之ROSALIND——Part 3

    目录 1 Mortal Fibonacci RabbitsProblemSample DatasetSample OutputCodeOutput 2 Overlap GraphsProblemSample DatasetSample Ou
  • 生信刷题之ROSALIND——Part 4 (MPRT, MRNA, ORF)

    目录 写在前面1 Finding a Protein MotifProblemSample DatasetSample OutputCodeOutput 2 Inferring mRNA from ProteinProblemSample
  • Pandas第三次作业20200907

    练习1 读取北向 csv 指定trade date为行索引 查看数据的基本信息 有无缺失值 对其缺失值进行处理 删除缺失值所在行 查看数据的基本信息 查看数据是否清洗完毕 index列没啥用 将index列删除 观察数据是否有重复行 将重复
  • Linux设置开机默认进入命令行或者图形界面

    开机默认进入命令行模式 xff1a sudo systemctl set default multi user target 开机默认进入图形用户界面 xff1a sudo systemctl set default graphical t
  • 美团后端笔试

    文章目录 整场笔试下来 xff0c 整体难度一般 xff0c 只不过在第三题扑克牌游戏的时候进行的不是很顺利 xff0c 附加题难度一般 xff0c 不知道有没有小伙伴和我一样时间耗费在第三题上面的 1 魔法外卖 题目描述 xff1a 炸鸡
  • 【JokerのZYNQ7020】QSPI启动。

    软件环境 xff1a vivado 2017 4 硬件平台 xff1a XC7Z020 通常来说 xff0c 系统做好以后是放SD卡里 xff0c 上电以后 xff0c 根据boot引脚的配置 xff0c 从SD卡引导系统启动 如果你像我一
  • 【JokerのZYNQ7020】SDK程序从QSPI启动。

    软件环境 xff1a vivado 2017 4 硬件平台 xff1a XC7Z020 之前写的QSPI启动是对ZYNQ的PS装Linux系统的 xff0c 如果不想搞那么麻烦或者功能要求单一 xff0c 调试又想方便一些 xff0c 直接
  • 【JokerのZYNQ7020】Vxworks 6.9。

    软件环境 xff1a vivado 2017 4 硬件平台 xff1a XC7Z020 基本全程参考的官方xapp1158 zynq 7000 vxworks bsp pdf xff0c 但我感觉主要难度不在移植上 xff0c 因为pdf里
  • 【JokerのZYNQ7020】ubuntu启动后跳过验证登录。

    之前分享过一篇debian系统启动后如何自动加载用户应用的例程 xff0c 今天在这里继续分享一个非常实用的小技巧 xff0c 如何让嵌入式板卡的ubuntu系统启动后 xff0c 跳过用户名密码验证 xff0c 直接以root身份进入系统
  • 2013年终总结

    2013年即将过去 xff0c 回顾这一年 xff0c 有得有失 xff0c 有喜有悲 xff0c 些许记忆碎片留在脑海中 简单做个总结 xff0c 也算划上一个完美的句号 xff0c 再迎接充满挑战的2014 xff01 项目 一年过来
  • 用FSL进行VBM统计分析

    用FSL进行VBM统计分析 总体步骤概览1 准备数据1 1 T1数据格式1 2 Template list查看数据 2 剥头皮 xff1a fslvbm 1 bet3 数据分割 43 生成模板 xff1a fslvbm 2 template
  • 程序员的生活,其实苦不堪言

    前一天 A 下班前把这个代码发给我 B 好的 xff01 第二天 A 都他妈中午了 xff0c 代码怎么还没发过来 xff1f B 我他妈还没下班呢 xff01 程序猿的真实写照 曾经刚参加工作 xff0c 接手一个项目的维护 xff0c
  • 文件后缀大全

    file extensions with related program associations a unix library unix ada program a01 arj multi volume compressed archiv
  • Android Studio 安装Kotlin插件

    1 打开Android Studio 的File gt Settings xff0c 选择左侧Plugins显示已安装插件列表 搜索框输入kotlin xff0c 若无搜索结果 xff0c 可以点击 Search in repositori
  • Python读取文件的多种方式

    在Python编程中 xff0c 读取文件是非常常见的操作 Python提供了多种读取文件的方式 xff0c 本文将介绍其中的几种方式 1 使用open函数读取文件 使用Python内置函数open 可以打开一个文件 xff0c 并返回一个
  • 阿里Java面试题剖析:关于系统拆分,为什么要进行系统拆分?

    外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img Xz97Uqx1 1663815474530 https upload images jianshu io upload images 16535373 f09e8
  • 关于完全二叉树高度h与结点个数n的推导

    推导1 xff1a 具有n个 n gt 0 结点的完全二叉树的高度h为 xff1a log2 n 43 1 由于高度h的满二叉树共有2h 1个结点 高度为h 1的满二叉树有2h 1 1个结点 可得2h 1 1 lt n lt 61 2h 1
  • Android 采用fastboot刷system.img boot.img recovery.img

    手机正常启动后 xff0c 命令行模式下输入 adb reboot bootloader 该命令会自动进入fastboot模式 接着 xff1a fastboot devices 查看是否有设备 erase 擦除的意思 xff0c 你懂得
  • ButterKnife与BindView使用详解

    ButterKnife与BindView使用详解 ButterKnife的优势 具有强大的view绑定和click事件处理能力 方便处理Adapter里的viewHolder绑定问题 运行时不会影响app效率 xff0c 配置方便 代码清晰