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

安卓开发中ViewBinding的使用

在安卓开发中,ViewBing 的作用就是简化 findViewById() 代码的写法。

看看下面的替换:

et=binding.text

//et=findViewById(R.id.text)

下面就看看怎么用的,

首先,打开app模块的build.gradle,然后添加如下代码:

buildFeatures {viewBinding = true
}

这个是添加在Android 里面的,见下图:

添加代码后,系统提示sync now 见上图的双框,一定要点击,然后等待sync完毕,才有效。

下面就开始使用它:

这里的使用也很简单,如果你了解Kotlin语法的话,首先是创建一个binding变量,类型是ActivityMainBinding,这是一个编译时生成的类,它源于你的activity_main.xml,就是将你的xml文件名称再加上Binding后缀,如果你的布局是item_device.xml,那么生成的类就是ItemDeviceBinding,这样你应该好理解了。下面看看我的代码:

...
import com.liwensoft.hellogit.databinding.ActivityMainBindingclass MainActivity : AppCompatActivity() {private lateinit var et: EditTextprivate lateinit var binding: ActivityMainBinding   //add bindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)//setContentView(R.layout.activity_main)et=binding.text//et=findViewById(R.id.text)val plus:Button=binding.copy//val plus: Button = findViewById(R.id.copy)plus.setOnClickListener {OnClick()}}
...
}
设置一个变量
private lateinit var binding: ActivityMainBinding   //add binding

在onCreate 函数中加:

binding = ActivityMainBinding.inflate(layoutInflater)

然后可以看到bing 对下面一行注释的代码的替代。

我最开始看到这个是在下面链接中的一个介绍。

Android Studio 安装配置教程 - Windows(详细版)_android studio安装教程_初学者-Study的博客-CSDN博客

变量很多的时候,比较方便,最重要的是,别人这么写的时候,你能看懂。

http://www.lryc.cn/news/171594.html

相关文章:

  • 【初阶数据结构】树(tree)的基本概念——C语言
  • 二叉树知识点
  • Day69:283. 移动零、11. 盛最多水的容器、42. 接雨水
  • tensorrt的安装和使用
  • 电压放大器在电子测试中的应用有哪些方面
  • 39.地址算术运算
  • 没有外网的麒麟系统上搭建GitLab服务并且无需客户端账号密码验证
  • 微服务生态系统:使用Spring Cloud构建分布式系统
  • DIY 一个汽车方向盘游戏外设(MMOS OSW DIY)
  • 校园网络技术需求分析
  • 计算机网络(二):TCP篇
  • 测试登录界面:Python
  • Rust踩雷笔记(7)——两个链表题例子初识裸指针
  • 用什么命令看Linux系统的体系架构
  • 消息中间件大揭秘:选择之前你必须知道的关键信息
  • 【Unity基础】4.动画Animation
  • FreeRTOS移植以及核心功能
  • 重装系统(配置环境)
  • docker系列-报错以及解决指南
  • Vue3快速上手
  • 二叉搜索树(BST,Binary Search Tree)
  • 分析key原理
  • [CISCN2019 华东南赛区]Web11 SSTI
  • 百度春招C++后端面经总结
  • 小程序开发一个多少钱啊
  • C# 随机数生成 Mersenne Twister 马特赛特旋转演算法 梅森旋转算法
  • C++进阶(二)
  • zoneinfo
  • 基于微信小程序的实验室预约管理系统设计与实现
  • 腾讯mini项目-【指标监控服务重构】2023-08-17