当前位置: 首页 > news >正文

[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文件中添加配置&#xff0c;然后同步。 android {...buildFeatures {viewBinding true} } 2.用 View Binding 类来访问布局中的视图 在Activity代码的顶部导入生成的 View Binding 类&#xff1a; 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文…...

软件测试/测试开发丨接口自动化测试学习笔记,多环境自动切换

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/28026 多环境介绍 环境使用场景备注dev开发环境开发自测QA测试环境QA日常测试preprod预发布环境回归测试、产品验测试prod线上环境用户使用的环境 通过环…...

Spring-IoC与DI入门案例

IoC入门案例 IoC入门案例思路分析 管理什么&#xff1f;&#xff08;Service与Dao&#xff09;如何将被管理的对象告知IoC容器&#xff1f;&#xff08;配置&#xff09;被管理的对象交给IoC容器&#xff0c;如何获取到IoC容器&#xff1f;&#xff08;接口&#xff09;IoC容…...

windows虚拟内存自定义分配以及mysql错误:Row size too large (> 8126)

文章目录 虚拟内存概要windows-server配置虚拟内存技术名词解释关于mysql错误Row size too large (> 8126)问题分析解决办法 虚拟内存概要 虚拟内存别称虚拟存储器&#xff08;Virtual Memory&#xff09;。电脑中所运行的程序均需经由内存执行&#xff0c;若执行的程序占用…...

自动备份pgsql数据库

bat文件中的内容&#xff1a; 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))&#xff0c;报错&#xff1a;TypeError: _AxesStack object is not callable 二、原因 可能是当前python环境下的networkx和matplotlib的版本不匹配。我报错时的networkx2.8&#xff0c;matplotl…...

tcpdump 常用命令

wireshark抓包抓取服务器10.20.1.101上的包&#xff0c;使用网络接口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一段时间发现存储不足报错 发现这里用的是根路径的挂载&#xff0c;修改一下...

JS代码其实可以这样写

给大家推荐一个实用面试题库 1、前端面试题库 (面试必备) 推荐:★★★★★ 地址:web前端面试题库 日常工作中,我确实经常去帮大家review代码,长期以来,我发现有些个功能函数,JS其实可以稍微调整一下,或者换个方式来处理,代码就会看起来更清晰,更简洁,…...

day14-文件系统工作流程分析

1.内核启动文件系统后&#xff0c;文件系统的工作流程 1.参数的接收 2.参数的解析 3.参数的应用 问题&#xff1a; 1. UBOOT 传给 KERNEL 的参数是以tagglist进行的 KERNEL 传给 文件系统(busybox)的参数是以什么进行的&#xff1f; 2. 在整个文件系统中都需…...

kubectl 常用命令搜集 —— 筑梦之路

集群信息&#xff1a; 1. 显示 Kubernetes 版本&#xff1a;kubectl version 2. 显示集群信息&#xff1a;kubectl cluster-info 3. 列出集群中的所有节点&#xff1a;kubectl get nodes 4. 查看一个具体的节点详情&#xff1a;kubectl describe node <node-name> 5.…...

计算3D目标框的NMS

3D障碍物目标框&#xff08;中心点坐标XYZ、长宽高lwh、朝向角theta&#xff09;的非极大值抑制 #include <iostream> #include <vector> #include <algorithm> #include <opencv2/opencv.hpp>// 定义3D目标框的结构体 struct BoundingBox3D {double …...

【Java实现图书管理系统】

图书管理系统 1. 设计背景2. 设计思路3. 模块展示代码演示3.1 Book类3.2 BookList类&#xff08;书架类&#xff09;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多机器人编队导航仿真写了多机器人呢导航的代码实现&#xff0c;本文主要说明&#xff0c;RVIZ导航环境的配置&#xff0c;如何添加多个2D Pose Estimate/…...

UE4 / UE5 内存与性能优化

性能优化 资源压缩粒子优化NavMeshGenerate Overlap EventGCMarkTime光照优化Shader优化卡的时间长LOD官方CPU、GPU Insights、stat cpu、 ue4 memory report、inter GPA 、RenderDOC、减少模型面数等 资源压缩 在图片资源上右键选择Size Map可以看到资源所占大小&#xff0c;…...

dotnet core程序部署到ubuntu

visual studio2022编译好的dotnet core程序&#xff0c;打开“程序包管理器控制台”&#xff0c;打包发布dotnet core,使用命令 dotnet publish -c Release -r ubuntu.22.04-x64打包会生成ubuntu22.04-x64文件夹&#xff0c;将这个文件夹传到ubuntu服务器&#xff0c;切换到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元素是否不存在字符串、列表、元组、字典 案例&#xff1a; 合并 代码&#xff1…...

Qwen3-14B推理速度实测:10核CPU+24GB显存下首token延迟<800ms

Qwen3-14B推理速度实测&#xff1a;10核CPU24GB显存下首token延迟<800ms 1. 测试环境与配置 1.1 硬件配置 本次测试使用的硬件配置完全匹配Qwen3-14B私有部署镜像的推荐规格&#xff1a; GPU&#xff1a;RTX 4090D 24GB显存&#xff08;NVIDIA驱动550.90.07&#xff09;…...

Verilog仿真踩坑记:为什么你的测试用例‘通过’了,但电路其实是错的?(附X态检测代码)

Verilog仿真中的X态陷阱&#xff1a;如何避免“虚假通过”的致命错误 数字电路仿真中&#xff0c;最危险的场景莫过于测试结果显示“Passed”&#xff0c;但实际芯片却存在严重功能缺陷。这种“虚假通过”现象往往源于Verilog中X态&#xff08;未知状态&#xff09;的隐蔽特性…...

从变砖到重生:红魔全系9008深度救砖指南与实战解析

1. 什么是9008模式&#xff1f;为什么能救砖&#xff1f; 当你发现红魔手机卡在开机界面、反复重启甚至完全黑屏时&#xff0c;大概率是遇到了传说中的"变砖"。这时候高通芯片隐藏的9008模式就是最后的救命稻草。简单来说&#xff0c;9008模式相当于电脑的BIOS界面&…...

【优选算法篇】拓扑排序——逻辑先后与任务依赖的终极拆解

文章目录逻辑的枷锁&#xff1a;在依赖网中寻找出路零、 拓扑排序&#xff1a;打破逻辑混乱的“秩序之光”一、 课程表 I & II&#xff1a;经典拓扑排序 (Medium)1.1 题目描述1.2 算法思路&#xff1a;依赖关系的剥离1.3 C 代码实战 (以课程表 II 为例)二、 火星词典&#…...

5分钟学会用AI将手绘草图转为专业科研图表代码

5分钟学会用AI将手绘草图转为专业科研图表代码 【免费下载链接】DeTikZify Synthesizing Graphics Programs for Scientific Figures and Sketches with TikZ 项目地址: https://gitcode.com/gh_mirrors/de/DeTikZify 你是否曾因绘制科研图表而烦恼&#xff1f;面对复杂…...

GLM-4.1V-9B-Base与MATLAB联动:科学计算可视化报告的自动生成

GLM-4.1V-9B-Base与MATLAB联动&#xff1a;科学计算可视化报告的自动生成 1. 科研工作流中的痛点与解决方案 科研人员每天都要面对大量实验数据&#xff0c;从原始数据到最终的可视化报告往往需要经历繁琐的步骤。传统的数据分析流程通常包括&#xff1a;数据整理→MATLAB编程…...

TVBoxOSC:电视盒子全能播放解决方案终极指南

TVBoxOSC&#xff1a;电视盒子全能播放解决方案终极指南 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库&#xff0c;用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC 你是否曾经为电视盒子播放视频时遇到格式…...

避坑指南:通达信DLL加密常见的5大误区与替代方案

通达信指标加密实战&#xff1a;5种DLL开发陷阱与零代码解决方案 在量化交易领域&#xff0c;指标公式的保护一直是开发者面临的棘手问题。最近三个月内&#xff0c;某金融开发者社区关于"通达信DLL加密失败"的求助帖增长了47%&#xff0c;暴露出传统加密方案存在显…...

[特殊字符] Nano-Banana部署教程:Ubuntu/CentOS环境下的镜像拉取与启动

Nano-Banana部署教程&#xff1a;Ubuntu/CentOS环境下的镜像拉取与启动 1. 项目简介 Nano-Banana是一款专门为产品拆解和平铺展示风格设计的轻量级文本生成图像系统。这个项目的核心在于深度融合了Nano-Banana专属的Turbo LoRA微调权重&#xff0c;专门针对Knolling平铺、爆炸…...

RWKV7-1.5B-g1a轻量部署方案:中小企业AI落地首选,年省GPU成本超40%

RWKV7-1.5B-g1a轻量部署方案&#xff1a;中小企业AI落地首选&#xff0c;年省GPU成本超40% 1. 为什么选择RWKV7-1.5B-g1a 在当今AI技术快速发展的背景下&#xff0c;中小企业往往面临高昂的GPU计算成本和技术门槛。rwkv7-1.5B-g1a作为一款基于RWKV-7架构的多语言文本生成模型…...