viewBinding的使用(android studio)

引入

在开发安卓软件的时候,我们会大量的使用点击事件。通常情况下,我们是这样做的:将在xml文件里把目标组件添加id属性,如下:

然后在activity里面通过findViewById(R.id.back) 得到一个对象,通过对象调用监听器,再在监听器里面写被点击以后的代码逻辑。如下:

这样做太麻烦了。如果我们软件有一百个点击事件,那岂不是要单独列出100行findViewById()?

另外,findViewById()还有可能出点类型转换和空指针的问题。因此,我们有了另一种更加方便快捷的绑定方式:视图绑定(viewBinding)


使用方法

在gradle (Module: app) 中设置:

 根据版本和build configuration language的不同,viewBinding 里面的也可能是enable true

下面的一步就是在xml里面给你想要的组件配一个id (比如,android:id="@+id/myId"),和上面介绍的一样。

下一步:

 如果Activity 名字叫XXXActivity,那这个binding的类型就叫:ActivityXXXBinding

下一步:

最后一步是给组件添加监听事件:

 从这里我们能看到viewBinding(视图绑定)和我们之前用的findViewById()(数据绑定)的区别。前者可以直接通过binding.back设置监听器,而后者需要先创建一个对象再用对象设置监听器。

viewBinding的优势在一个页面需要很多组件与用户的互动的时候会尤为明显

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/409396.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac和windows上安装nvm管理node版本

NVM 是 node version manager 的缩写,它是一个用来管理电脑上 node 版本的命令行工具,在日常前端开发中是一个跟 node 一样会经常用到的工具,可以很方便的让我们快速切换不同的node版本。 mac 上安装 nvm 1、下载安装 nvm 下载安装可以直…

Facebook的区块链战略:如何在社交媒体中实现去中心化

随着区块链技术的发展,Facebook(现Meta)正积极探索如何将这一技术整合进其社交平台中,以提升用户体验和数据安全。区块链技术以去中心化、透明性和不可篡改性为特点,为社交媒体带来了新的可能性。本文将探讨Facebook在…

在VB.net中,LINQ有什么方法与属性

标题 在VB.net中,LINQ有什么方法与属性 正文 在VB.NET中使用LINQ(Language Integrated Query),你可以利用一系列的方法和属性来查询和操作内存中的集合(如数组、列表等)以及数据库等数据源。LINQ提供了丰富…

OpenGL笔记二十之深度检测概念

OpenGL笔记二十之深度检测概念 —— 2024-08-25 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记二十之深度检测概念1.课程PPT截图2.运行3.代码 1.课程PPT截图 2.运行 3.代码 关键部分 main.cpp #include <iostream>#include "glfra…

【学习笔记】STM32F407探索者HAL库开发(三)IO分配

【学习笔记】STM32F407探索者HAL库开发&#xff08;三&#xff09;IO分配 1 STM32F407 IO资源分配表2 STM32F407ZGT6 引脚定义3 IO分配的重要性3.1 硬件设计优化3.2 软件编程3.3 系统性能提升 4 F1/F7/H7芯片的IO分配差异4.1 引脚数量和分组4.2 功能模式4.2.1 输入模式4.2.2 输…

7-6 分段函数2

计算分段函数&#xff0c;测试数据分别是-1、5、12。 输入格式: 输入一个数。 输出格式: 直接输出保留6位小数的结果&#xff0c;没有其它任何附加字符&#xff0c;没有宽度控制。 输入样例: 11输出样例: 0.999912输入样例: 7输出样例: 8.000000 #include <stdio.h…

java之类和对象2

封装的概念&#xff1a;将数据和操作数据的方法进行有机结合&#xff0c;隐藏对象的属性和实现细节&#xff0c;仅对外公开接口来和对象进行 交互 。&#xff08;主要通过类和访问权限符进行封装&#xff09; 访问权限符的介绍&#xff1a; public:相同/不同包中的子类/非子类…

足球规则指南,快速入门一看就懂

保姆级足球规则指南&#xff0c;旨在帮助初学者快速入门&#xff0c;一看就懂。以下是精简而全面的指南&#xff1a; 一、比赛场地与球员 场地&#xff1a;足球比赛在长方形场地上进行&#xff0c;长度为101米&#xff0c;宽度为64米。场地两端设有球门&#xff0c;高2.44米&…

【git bash编码错误解决方案】启动conda环境时报错,其他terminal却正常

&#x1f50e;嘿&#xff0c;这里是慰慰&#x1f469;&#x1f3fb;‍&#x1f393;&#xff0c;会发各种类型的文章&#xff0c;智能专业&#xff0c;从事前端&#x1f43e; &#x1f389;如果有帮助的话&#xff0c;就点个赞叭&#xff0c;让我开心一下&#xff01;&#x1f…

2024网络安全学习路线 非常详细 推荐学习

关键词&#xff1a;网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊&#xff0c;学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间&#xff0c;光语言都有几门&#xff0c;有些人会倒在学习 linux 系统及命令的路上&#…

MacOS安装 Python 和 PyCharm

MacOS安装 Python3.12.5 和 PyCharm 小阿呜有话说一、MacOS安装PythonPython官网下载 二、MacOS安装PyCharmPyCharm官网下载 叮嘟&#xff01;这里是小啊呜的学习课程资料整理。好记性不如烂笔头&#xff0c;今天也是努力进步的一天。一起加油进阶吧&#xff01; 小阿呜有话说 …

CR80清洁卡:一款磁卡读卡设备广泛适用的清洁利器!

CR80清洁卡&#xff0c;专为磁卡读卡设备设计&#xff0c;是一款高效且广泛适用的清洁工具。CR80是国际标准中定义的卡片尺寸&#xff0c;即长85.60mm、宽53.98mm&#xff0c;这种尺寸的卡片广泛应用于身份证、银行卡、门禁卡、会员卡等多种场合。因此&#xff0c;CR80清洁卡特…

【PyQt】切换界面的实现

前言一、介绍二、代码2.1 QStackedWidget2.1.1 代码2.1.2 运行结果展示 2.2 QTabWidget2.2.1 代码2.2.2 运行结果展示 2.3 QDockWidget2.3.1 代码2.3.2 运行结果展示 PULSE结果 总结 前言 实现几个界面的切换展示的效果。 一、介绍 在 PyQt 中实现一个主界面包含其他子界面的…

Vue3 获取农历(阴历)日期,并封装日历展示组件

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;我是码喽的自我修养&#xff01;今天给大家分享vue3项目中使用 chinese-lunar-calendar 插件获取农历(阴历)日期&#xff0c;并封装了日历展示组件&#xff01;提供了具体的代码帮助大家深入理解&#xff0c;彻底掌握&#…

【SpringBoot】11 多数据源(MyBatis:dynamic-datasource)

介绍 多数据源&#xff1a;指的是一个单一应用程序中涉及了两个及以上的数据库&#xff0c;这种配置允许应用程序根据业务需求灵活地管理和操作不同的数据库。 需求 一个应用服务中&#xff0c;连接多个数据库&#xff0c;有本地的也有远程的&#xff0c;有MysQL、Oracle、P…

Python和MATLAB梯度下降导图

&#x1f3af;要点 寻找局部最小值普通最小二乘法和随机梯度下降的动量线性回归媒体广告销售光学字符识别和最小化均方误差男女医疗费用最快速下降方向函数优化等高线图可视化共轭梯度下降可视化损失函数、动量、涅斯特洛夫动量、权衰减量化不确定性拓扑结构算法分类中权重归一…

Threejs学习-三维坐标系、相机控件

坐标系&#xff1a; Three.js 使用的是右手坐标系&#xff0c;x 轴朝右&#xff0c;y 轴朝上&#xff0c;z 轴朝向自己。 相机控件轨道控制器 相机控件OrbitControls 通过相机控件OrbitControls实现旋转缩放预览效果。 // 设置相机控件轨道控制器OrbitControls const contr…

OpenCV几何图像变换(6)计算反转仿射变换函数invertAffineTransform()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 反转一个仿射变换。 该函数计算由 23 矩阵 M 表示的逆仿射变换&#xff1a; [ a 11 a 12 b 1 a 21 a 22 b 2 ] \begin{bmatrix} a_{11} & a…

windows vs2022 MFC使用webview2嵌入网页

Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge 作为绘制引擎&#xff0c;以在本机应用中显示 web 内容。 一、通过菜单“项目”-“管理NuGet程序包”&#xff0c;下载相关包 二、安装 Microsof…

结构化与面向对象

人类认识世界总是循序渐进的过程&#xff0c;软件工程也一样&#xff0c;从最开始的单兵作战&#xff0c;再到软件作坊&#xff0c;直到如今的大规模软件开发&#xff0c;软件工程从业者不断总结实践中存在的问题以及解决途径&#xff0c;逐渐形成了一系列的软件工程方法&#…