[Android]使用View Binding 替代findViewById
1.配置
build.gradle文件中添加配置,然后同步。
android {...buildFeatures {viewBinding true}
}
2.用 View Binding 类来访问布局中的视图
在Activity代码的顶部导入生成的 View Binding 类:
import com.example.yourapp.databinding.ActivityMainBinding
在活动类中创建一个 View Binding 对象,并使用 inflate方法获取绑定的视图:
private lateinit var binding: ActivityMainBinding
在活动的 onCreate 方法中,使用 setContentView 方法设置活动的视图,并使用 View Binding 对象获取根视图:
override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)// 现在您可以使用 binding 对象访问布局中的视图binding.textView.text = "Hello, World!"
}
3. 在Fragment中使用View Binding
在Fragment中,你可以在onCreateView中使用View Binding:
class MainFragment : Fragment() {private var _binding: FragmentMainBinding? = nullprivate val binding get() = _binding!!override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,savedInstanceState: Bundle?): View? {_binding = FragmentMainBinding.inflate(inflater, container, false)return binding.root}override fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)binding.someView.text = "Hello, World!"}override fun onDestroyView() {super.onDestroyView()_binding = null}
}
在Fragment中,我们需要在onDestroyView中设置_binding为null,这是因为视图可能在Fragment销毁之前就被销毁了,所以我们需要避免在Fragment和视图之间产生内存泄漏。
4.忽略View Binding
如果布局文件不需要生成绑定类,可以将 tools:viewBindingIgnore="true" 属性添加到该布局文件的根视图中:
<LinearLayout...tools:viewBindingIgnore="true" >
</LinearLayout>
相关文章:
[Android]使用View Binding 替代findViewById
1.配置 build.gradle文件中添加配置,然后同步。 android {...buildFeatures {viewBinding true} } 2.用 View Binding 类来访问布局中的视图 在Activity代码的顶部导入生成的 View Binding 类: import com.example.yourapp.databinding.ActivityMai…...
Pytest UI自动化测试实战实例
环境准备 序号库/插件/工具安装命令1确保您已经安装了python3.x2配置python3pycharmselenium2开发环境3安装pytest库 pip install pytest 4安装pytest -html 报告插件pip install pytest-html5安装pypiwin32库(用来模拟按键)pip install pypiwin32 6安装openpyxl解析excel文…...
软件测试/测试开发丨接口自动化测试学习笔记,多环境自动切换
点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/28026 多环境介绍 环境使用场景备注dev开发环境开发自测QA测试环境QA日常测试preprod预发布环境回归测试、产品验测试prod线上环境用户使用的环境 通过环…...
Spring-IoC与DI入门案例
IoC入门案例 IoC入门案例思路分析 管理什么?(Service与Dao)如何将被管理的对象告知IoC容器?(配置)被管理的对象交给IoC容器,如何获取到IoC容器?(接口)IoC容…...
windows虚拟内存自定义分配以及mysql错误:Row size too large (> 8126)
文章目录 虚拟内存概要windows-server配置虚拟内存技术名词解释关于mysql错误Row size too large (> 8126)问题分析解决办法 虚拟内存概要 虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序占用…...
自动备份pgsql数据库
bat文件中的内容: PATH D:\Program Files\PostgreSQL\13\bin;D:\Program Files\7-Zip set PGPASSWORD**** pg_dump -h 8.134.151.187 -p 5466 -U sky -d mip_db --schema-only -f D:\DB\backup\%TODAY%-schema-mip_db_ali.sql pg_dump -h 8.134.151.187 -p 5466…...
networkx使用draw画图报错:TypeError: ‘_AxesStack‘ object is not callable
一、问题描述 在使用networkx的draw绘图时nx.draw(g,posnx.spring_layout(g)),报错:TypeError: _AxesStack object is not callable 二、原因 可能是当前python环境下的networkx和matplotlib的版本不匹配。我报错时的networkx2.8,matplotl…...
tcpdump 常用命令
wireshark抓包抓取服务器10.20.1.101上的包,使用网络接口wlan ./tcpdump -vvv host 192.168.137.142 and 10.20.1.101 and ! port 23 -w rtmp.cap ./tcpdump -vvv host port 9013 -w ppt.cap...
Linux 下安装 Maven 3.8.8【详细步骤】
前提条件:安装 jdk,详见 安装jdk1.8 # 下载(地址可能会因为版本更新无效,到时候直接去官网找下载地址) wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz# 解压 tar -zxvf apache-maven-3.8.8-bin.tar.gz# 修改环境变量 vi /e…...
报错资源不足,k8s使用containerd运行容器修改挂载点根目录换成/home
运行k8s一段时间发现存储不足报错 发现这里用的是根路径的挂载,修改一下...
JS代码其实可以这样写
给大家推荐一个实用面试题库 1、前端面试题库 (面试必备) 推荐:★★★★★ 地址:web前端面试题库 日常工作中,我确实经常去帮大家review代码,长期以来,我发现有些个功能函数,JS其实可以稍微调整一下,或者换个方式来处理,代码就会看起来更清晰,更简洁,…...
day14-文件系统工作流程分析
1.内核启动文件系统后,文件系统的工作流程 1.参数的接收 2.参数的解析 3.参数的应用 问题: 1. UBOOT 传给 KERNEL 的参数是以tagglist进行的 KERNEL 传给 文件系统(busybox)的参数是以什么进行的? 2. 在整个文件系统中都需…...
kubectl 常用命令搜集 —— 筑梦之路
集群信息: 1. 显示 Kubernetes 版本:kubectl version 2. 显示集群信息:kubectl cluster-info 3. 列出集群中的所有节点:kubectl get nodes 4. 查看一个具体的节点详情:kubectl describe node <node-name> 5.…...
计算3D目标框的NMS
3D障碍物目标框(中心点坐标XYZ、长宽高lwh、朝向角theta)的非极大值抑制 #include <iostream> #include <vector> #include <algorithm> #include <opencv2/opencv.hpp>// 定义3D目标框的结构体 struct BoundingBox3D {double …...
【Java实现图书管理系统】
图书管理系统 1. 设计背景2. 设计思路3. 模块展示代码演示3.1 Book类3.2 BookList类(书架类)3.4 用户类 - User类3.5 子类管理员类 -- AdminUser类3.6 子类普通用户类 -- NormalUser类3.7 操作接口3.8 操作类3.8.1 查找操作 -- FindOperation类3.8.2 增加…...
ROS 多机器人导航RVIZ环境的配置
文章目录 前言一、添加多个2D Pose Estimate/2D nav Goal二、RVIZ的其他配置1.RobotModel 总结 前言 前文ROS Turtlebot3多机器人编队导航仿真写了多机器人呢导航的代码实现,本文主要说明,RVIZ导航环境的配置,如何添加多个2D Pose Estimate/…...
UE4 / UE5 内存与性能优化
性能优化 资源压缩粒子优化NavMeshGenerate Overlap EventGCMarkTime光照优化Shader优化卡的时间长LOD官方CPU、GPU Insights、stat cpu、 ue4 memory report、inter GPA 、RenderDOC、减少模型面数等 资源压缩 在图片资源上右键选择Size Map可以看到资源所占大小,…...
dotnet core程序部署到ubuntu
visual studio2022编译好的dotnet core程序,打开“程序包管理器控制台”,打包发布dotnet core,使用命令 dotnet publish -c Release -r ubuntu.22.04-x64打包会生成ubuntu22.04-x64文件夹,将这个文件夹传到ubuntu服务器,切换到ubu…...
Antv/G2 柱状图添加自定义点击事件
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>柱状图点击事件</title></head><body><div id"container" /><script src"https://gw.alipayobjects.com/os/lib/antv/g2/4.2.8/…...
Python---数据序列中的公共方法
公共方法就是 支持大部分 数据 序列。 常见公共方法---简单 运算符描述支持的容器类型合并字符串、列表、元组* 复制字符串、列表、元组in元素是否存在字符串、列表、元组、字典not in元素是否不存在字符串、列表、元组、字典 案例: 合并 代码࿱…...
NLP文本预处理全流程实战:从数据清洗到向量化的工程实践指南
1. 项目概述:从文本到智能的桥梁在人工智能的众多分支中,自然语言处理(NLP)一直是最具挑战性也最引人入胜的领域之一。它的核心目标直白而宏大:让机器能像人一样理解、运用和生成语言。这听起来像是科幻小说的情节&…...
AI应用成本工程:让你的LLM系统降本30%-70%的工程实践
成本问题是AI应用规模化的最大障碍 一个运行良好的AI原型,扩展到生产规模时往往面临一个令人震惊的现实:成本。举个典型案例:一个内部知识库问答系统,在100用户规模测试时每月花费约500元,感觉完全可接受。当推广到500…...
别再死记硬背了!用Python手把手拆解卡尔曼滤波的5个核心公式(附filterpy/OpenCV两种实现)
别再死记硬背了!用Python手把手拆解卡尔曼滤波的5个核心公式(附filterpy/OpenCV两种实现)卡尔曼滤波就像一位隐形的数据调酒师,它能将嘈杂的观测数据与不完美的预测模型混合,调制出一杯接近真实状态的"鸡尾酒&quo…...
高维数据压缩:秩-1格点与双曲交叉方法原理与应用
1. 项目概述:高维数据压缩的格点与双曲交叉方法在科学计算和工程仿真中,我们常常需要处理由海量样本点构成的高维数据集。想象一下,你正在模拟一架飞机的气动性能,或者评估一个复杂金融模型的风险,每一次仿真都可能产生…...
机器学习优化算法在激光等离子体加速实验中的应用与选型指南
1. 项目概述:当机器学习算法遇见激光等离子体加速在激光等离子体加速(Laser Wakefield Acceleration, LWFA)这类前沿物理实验中,我们常常面临一个经典难题:如何从一堆相互耦合、影响复杂的实验参数中,快速、…...
【Java后端开发】花了2k+多的人民币,烧了几十亿Token,慢慢整理出来适用于Java开发人员的codex配置,还在持续优化中
📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、《解密程序员的思维密码——沟通、演讲、思考的实践》作者、清华大学出版社签约作家、Java领域…...
焰境·万载——新一代文旅网站制作展示
江西万载数字文旅平台 北京高校在读生发起 AI 技术赋能县域文旅数字化转型 项目简介 焰境万载是围绕江西省万载县打造的数字文旅平台,以"中国花炮之乡"的千年烟花文化为核心,融合非遗传承、美食特产、旅游导览,以 AI 动漫角色&q…...
LeetCode 1424:对角线遍历 II | 前缀和分组
LeetCode 1424:对角线遍历 II | 前缀和分组 引言 对角线遍历 II(Diagonal Traverse II)是 LeetCode 第 1424 题,难度为 Medium。题目要求按照对角线顺序遍历一个二叉树数组,返回所有对角线上的节点值。这道题展示了前缀…...
书匠策AI深度拆解:2025年毕业论文竟然能这样“无痛通关“?|论文科普必看
各位正在被毕业论文反复折磨的同学们,今天这篇文章,我要用最接地气的方式,给你们拆解一个让我直呼"早该有了"的工具——书匠策AI( 官网直达:www.shujiangce.com)。 先说句大实话:写毕…...
语音“下一首“控制车载音乐播放!
V1.0一个android apk,这个app可以监听手机的语音,然后我可以发语音来控制播放下一首歌曲,给语音指令,下一个,就会在酷狗音乐上播放下一首歌曲。节省点击的操作,因为在车上手去点击,影响开车。V1…...
