ButterKnife离我们而去,作者已经宣称不在更新,取替代他的是官方推出的 View Binding

2023-05-16

是的是自从Android studio2.2.2升级项目到Android studio4.0以上

AS提示警告错误

Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them as annotation attributes

目前我的AS相关配置

Android Gradle Plugin Version Android Gradle插件版本
7.0.3
Gradle Version 分级版本
7.0.2

通过查询资料ButterKnife宣称

开发已经进入尾声,将不再更新并弃用,推荐我们使用谷歌官方推出的 View Binding

如果非要用也是可以的,但建议未来还是替换到最新的库《View Binding》

View Binding使用

Android Studio 的版本至少需要3.6及以上;

在app的build.gradle中的配置

// 需要 Android Gradle Plugin 3.6.0
android {
    viewBinding {
        enabled = true
    }
}
// Android Studio 4.0+
android {
        buildFeatures {
            viewBinding true
        }
    }

wk_activity_input_chepai.xml布局文件

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/mainViewFl"
	android:layout_width="fill_parent"
    android:layout_height="fill_parent"  
    android:background="@color/white"
    android:gravity="center_horizontal"
	android:orientation="vertical"
     >
	

	<EditText
		android:id="@+id/inputCpEt"
		android:layout_width="330dp"
		android:layout_height="53dp"
		android:background="@drawable/qian_grey_button"
		android:textColor="@color/black"
		android:textSize="24sp"
		android:gravity="center"
		android:layout_marginTop="36dp"
		android:layout_marginBottom="18dp"
		android:singleLine="true"
		android:text=""
		/>
	<Button
		android:id="@+id/inputOkBtn"
		android:layout_width="330dp"
		android:layout_height="53dp"
		android:background="@drawable/wk_login_btn2"
		android:textSize="24sp"
		android:textColor="@color/white"
		android:text="确认"
		/>
</LinearLayout>

 Activity代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WkActivityInputChepaiBinding inputChepaiBinding =
                WkActivityInputChepaiBinding.inflate(LayoutInflater.from(this));
        setContentView(inputChepaiBinding.getRoot());
        inputChepaiBinding.inputBackBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ManualInputActivity.this.finish();
            }
        });

        inputChepaiBinding.inputOkBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                licensePlate = inputChepaiBinding.inputCpEt.getText().toString().trim();
                if(!TextUtils.isEmpty(licensePlate)){
                    ScanningActivity.scanningResult = licensePlate;
                    startActivity(new Intent(ManualInputActivity.this,WkScanningResultActivity.class));
                    ManualInputActivity.this.finish();
                }else {
                    ToastUtils.showWarn(ManualInputActivity.this,"车牌号不能为空!");
                }
            }
        });
    }

如果在使用的过程中不想为某个布局文件生成binding类在布局中

绑定类是创建布局文件就生成好的,则想要忽略某个布局需要在根布局添加如下属性

<androidx.constraintlayout.widget.ConstraintLayout
      tools:viewBindingIgnore="true" >
 
</androidx.constraintlayout.widget.ConstraintLayout>

注意如果找不到Viewbinding(WkActivityInputChepaiBinding)

xml布局文件名称必须和Viewbinding。

例如:a_activity.xml ,Viewbinding 就是 AActivityBinding

后续

有空我会出一个更加全面的Viewbinding使用,其他特殊情况使用方式会有差异,比如动态绑定、adapter、frgment绑定等...

总结

学无止境,作为程序员老的知识还没消化完,新的知识及架构又回来,这是该行业的常态,所以心态必须好。

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

ButterKnife离我们而去,作者已经宣称不在更新,取替代他的是官方推出的 View Binding 的相关文章

  • 命里有时终须有,命里无时莫强求

    命里有时终须有 xff0c 命里无时莫强求 今天是2012年2月24号 xff0c 和我谈了3个多月的女生突然之间说我们之间不合适 xff0c 让我以后不要再去骚扰她 真心第一次体会到失恋的感觉 xff0c 同时打电话给我姐姐诉说了下 xf
  • 共享内存--函数

    共享内存允许两个不相关的进程访问同一个逻辑内存 共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式 大多数的共享内存的具体实现 xff0c 都把由不同进程之间共享的内存安排为同一段物理内存 共享内存是由IPC为进程创建的一个特殊
  • GNOME 3 介绍 技巧

    https wiki archlinux org index php GNOME 28 E7 AE 80 E4 BD 93 E4 B8 AD E6 96 87 29 GNOME项目使用最新的科技 xff0c 为用户从头打造了全新的现代桌面
  • assert用法

    判断是否为真 include 34 stdio h 34 include lt string h gt include lt stdlib h gt define NDEBUG include lt assert h gt void mai
  • strcpy原型

    已知strcpy 函数的原型是 char strcpy char strDest const char strSrc 其中strDest 是目的字符串 xff0c strSrc 是源字符串 xff08 1 xff09 不调用C 43 43
  • new与delete正确用法

    说明 xff1a 推荐使用如下宏 xff0c 可以在一定程度上避免使用空指针 xff0c 野指针的问题 define HW NEW var classname do try var 61 new classname catch var 61
  • VNC启动gnome或者KDE

    VNC xstartup程序中默认的设定值可以启动twm xff0c 而不是GNOME或KDE 默认配置文件为 HOME vnc xstartup HOME 是用户目录 如下 gnome桌面的配置文件如下 xff1a bin sh Unco
  • crontab执行java -jar不成功

    一个程序经常挂掉 xff0c 不想人为的一种手动重启 故写了一个脚本 xff0c 定时查看程序是否存在 xff0c 不存在就重启 但是过程中一直crontab 设置的定时器一直不执行 crontab e 1 opt speak start
  • crontab 解决周期内未执行完重复执行

    crontab 解决周期内未执行完重复执行 crontabphplock crontab 执行 php 脚本 linux 下的 crontab 定时任务服务 xff0c 可以用来定时运行脚本 工作中经常会用到这样的服务 xff0c 使用起来
  • Kali Linux 2020 VNC设置自动开机启动

    前提 大家好 目前最新版kali Linux 2020离线包貌似已经取消了桌面安装了 xff0c 需要自己去手动安装桌面 xff0c 所以如果你还是命令行 xff0c 那你就先安装个桌面再说 xff0c 怎么装自己去百度 VNC安装过程 首
  • http://wwwnno00.irrlicht3d.cn:8011/forum-20-3.html

    http wwwnno00 irrlicht3d cn 8011 forum 20 3 html
  • git guest reporter

    权限列表如下 xff1a ActionGuestReporterDeveloperMasterOwnerCreate new issue Leave comments Pull project code Download project C
  • 元素化学期末(考点)整理

    元素化学 期末 xff08 考点 xff09 整理 作者 xff1a gjq 转载或引用需联系作者 xff0c 欢迎给作者打钱 xff01 2019年期末考题请联系作者 xff0c 作者微信 xff1a photon gjq xff0c q
  • 关于ubuntu自启动(rc.local,/etc/rcx.d软连接,创建自定义service)

    ubuntu自启动 xff08 总结 xff09 前言方法一 xff1a 编辑etc rc local方法二 xff1a rcx d 下添加脚本方法三 xff1a 创建service 前言 日常工作中难免碰到需要让某些应用程序自启动的功能
  • springMVC+mybatis环境搭建

    web xml文件配置 lt 加载Spring容器配置 gt lt 设置Spring容器加载所有的配置文件的路径 gt lt context param gt lt param name gt contextConfigLocation l
  • 解决 https 无法访问

    本人腾讯云服务器 xff0c 放假上班打开宝塔面板 xff0c 结果无法访问 我想着重启实例 xff0c 结果面板可以打开 xff0c 但是域名打不开了 xff08 之前是可以打开的 xff09 最后在这个地址找到了答案 xff0c 记录一
  • Python程序设计 简单的图像处理(1)

    Python程序设计 简单的图像处理 xff08 1 xff09 1 写个滤镜 照片照的好 xff0c 不如滤镜用得好 xff01 一款好的滤镜软件可以让照片呈现不一样的风格乃至风情 xff0c 修理照片需要扬长避短达到最佳效果 可是滤镜款
  • Xcode操作流

    1 Xcode IDE概览 说明 xff1a 从左到右 xff0c 依次是 导航窗格 xff08 Navigator xff09 gt 边列 xff08 Gutter xff09 gt 焦点列 xff08 Ribbon xff09 gt 代
  • java gui 多线程,界面假死、僵死问题

    xff08 转载1 xff09 楼主bluepb xff08 流星 xff09 2005 06 04 20 28 17 在 Java GUI 设计 提问 我现在在用jAVA做图形化设计 xff0c 想问个多线程的问题 比如在一个窗口上点个按
  • excel数据对比-----查找两列(表)的相同数据

    原创作品 xff0c 允许转载 xff0c 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http xueli blog 51cto com 3325186 920592 现有两个excel表 xff0c

随机推荐

  • discuz 微社区 您请求的XXXX无法访问 接口错误(ERR02)

    我遇到的情况 xff1a 1 UC可以访问页面 xff0c 用微信报错 2 4G网络下可以访问 xff0c WiFi网络下报错 网上有两种解决方法 xff1a 1 关闭防采集 xff0c 我最终的采用方法 2 default下的mobile
  • 所有文件夹都变成1KB文件夹快捷方式病毒的手动清除方法

    电脑差不多都因使用U盘而感染了病毒 xff0c 其中一个就是Autoran病毒的变种 xff0c 它的症状我就不再描述了 xff0c 另外一个病毒的症状是所有文件夹都变成了1KB文件夹快捷方式 xff0c 各盘无法双击打开 xff08 但右
  • 搜狗高速浏览器2.0使用体验

    2010年 4 月 8 号 xff0c 我们终于迎来了 国内浏览器的后起之秀搜狗高速浏览器2 0 正式版 的 发布 高速真双核引擎 的概念得到了落实 它新增并改进了诸多功能 xff0c 修改了一些bug xff0c 从整体提高 搜狗高速浏览
  • Connection refused错误

    这个问题整了我两天时间 xff0c 现在终于解决了 问题 xff1a 用php 构造http请求访问自身web服务器页面 xff0c 总是报Connection refused 111 错误 显示 xff1a unable to conne
  • QT样式表从入门到精通

    QT样式表从入门到精通 文章目录 QT样式表从入门到精通前言1 背景介绍2 初级学习2 1 34 盒子 34 模型2 2 语法说明2 3 基础控件2 4 控件状态表2 5 选择器 3 中级学习3 1 坐标讲解3 1 1 相对坐标3 1 2
  • GIF89a图片头文件欺骗

    1 什么是GIF89a 一个GIF89a图形文件就是一个根据图形交换格式 xff08 GIF xff09 89a版 xff08 1989年7 月发行 xff09 进行格式化之后的图形 在GIF89a之前还有87a版 xff08 1987年5
  • txt文件导入mysql

    LOAD DATA LOW PRIORITY CONCURRENT LOCAL INFILE 39 file name 39 REPLACE IGNORE INTO TABLE tbl name CHARACTER SET charset
  • mac下终端无法使用数字小键盘的解决方案

    终端下 偏好设置 xff0d 高级 xff0d xff08 去掉 xff09 允许VT100应用程序小键盘模式
  • Mac Eclipse Failed to load JavaHL Library.

    转自 xff1a http blog csdn net wy10207010219 article details 42294293 写这一篇前我想发表一下感慨 xff1a 你所害怕的事 xff0c 你想要逃避的事 xff0c 在将来的某个
  • ROS学习笔记(一)ROS安装和helloworld

    ROS学习笔记 xff08 一 xff09 ROS安装和helloworld 文章目录 一 ros安装及测试1 打开ubuntu软件和更新 xff0c 进行如下设置2 设置安装源3 设置安装密钥4 更新软件源5 安装ros6 添加命令7 初
  • 使用ActiveMQ进行C++与C#的通信4 - 使用C++连接ActiveMQ

    在上一节编译ActiveMQ CPP的基础上 xff0c 创建C 43 43 控制台应用程序 xff0c 将activemq cpp项目中的include文件夹拷贝到该C 43 43 项目中 xff0c 设置好附加包含目录 将生成好的lib
  • 使用ActiveMQ进行C++与C#的通信5 - 实现C++和C#的通信

    在前几篇文章分别实现C C 43 43 连接ActiveMQ的基础上 xff0c 本文介绍如何使它们通信 使不同的进程对同一个ActiveMQ消息队列进行访问 xff0c 就能够达到消息互通的效果 例如使用queue test1 log作为
  • 【计算机游戏开发】游戏交互界面设计

    github项目地址 一 实验目的与要求 熟悉交互界面设计原理 了解Cocos2d x中的用户交互 触摸事件 碰撞检测机制 二 实验内容与方法 完成游戏编译 50分 仿照实验一 英雄快跑 实验 xff0c 将教材源码和素材文件复制到自己的项
  • k-近邻实现手写数字识别

    1 k 近邻工作原理 简单地说 xff0c K近邻算法采用测量不同特征值之间的距离方法进行分类 该算法具有一下特点 优点 xff1a 精度高 对异常值不敏感 无数据输入假定 缺点 xff1a 计算复杂度高 空间复杂度高 K近邻算法的工作原理
  • selenium之CSS定位

    一 层级定位 1 xff1a 所有标签 2 标签名 xff1a 查找所有该标签名 3 标签名 xff0c 标签名 xff1a 查找多个标签名 id用 表示 索引尽量使用xpath 二 三大等待和切换 1 页面元素可以定位 xff0c 但是代
  • STM32核心笔记

    STM32核心笔记 文章目录 STM32核心笔记1 下载程序的两种方式1 1 串口ISP1 2 仿真器1 2 1 J Link1 2 1 ST LINK 2 认识寄存器3 地址总线与外设地址映射关系4 GPIO的三种配置5 时钟树6 常用中
  • 用efibootmgr管理UEFI启动项,添加丢失的启动项

    UEFI用来替代传统BIOS引导操作系统 xff0c 学会修改UEFI启动项也变得十分重要 xff0c UEFI全称为 xff1a 统一的可扩展固件接口 xff08 Unified Extensible Firmware Interface
  • JAVA-生产消费者模型

    简单介绍一下生产消费者模型 xff0c 如下图 xff1a 一般来说 xff0c 生产消费者模型就是消费者和生产者可以共同操作茶叶仓库这一个共享资源 打一个比方 xff0c 生产者生产茶叶供向茶叶市场 xff0c 消费者在茶叶市场购买茶叶
  • 悲观锁与乐观锁(CAS实现)

    CAS乐观锁 悲观锁 悲观锁与乐观锁 悲观锁 xff1a 总是假设最坏的情况 xff0c 每次去拿数据的时候都认为别人会修改 xff0c 所以每次在拿数据的时候都会上锁 xff0c 这样别人想拿这个数据就会 阻塞 直到它拿到锁 传统的关系型
  • ButterKnife离我们而去,作者已经宣称不在更新,取替代他的是官方推出的 View Binding

    是的是自从Android studio2 2 2升级项目到Android studio4 0以上 AS提示警告错误 Resource IDs will be non final by default in Android Gradle Pl