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

Kotlin中使用ViewBinding绑定控件并添加点击事件

文章目录

  • 效果
  • 1、加入依赖
  • 2、与控件进行绑定
    • 在 Activity 中使用视图绑定
  • 3、监听控件

效果

在这里插入图片描述
实现源码

class MainActivity : AppCompatActivity() {lateinit var binding:ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//setContentView(R.layout.activity_main)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)binding.button.text = "Hello"}
}

1、加入依赖

在app 的 build.gradle 文件下的 android 标签下加入下面的代码
可以在Java / Kotlin语言中均可以使用,配置:

android {.......buildFeatures {viewBinding true}
}

只在Kotlin语言版本中配置:

   android {...viewBinding {enabled = true}}

2、与控件进行绑定

以下演示一个按钮绑定
xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"<Buttonandroid:id="@+id/exitButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="退出软件" /></LinearLayout>

在 Activity 中使用视图绑定

如需设置绑定类的实例以供 Activity 使用,请在 Activity 的 onCreate() 方法中执行以下步骤:

  1. 在Kotlin代码中使用ViewBinding.inflate方法获取绑定对象,并使用该对象访问布局文件中的控件
  2. setContentView(binding.root) 设置布局文件
class MainActivity : AppCompatActivity() {lateinit var binding:ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//    setContentView(R.layout.activity_main)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)}
}

3、监听控件

使用setOnClickListener方法为控件添加点击事件

class MainActivity : AppCompatActivity() {lateinit var binding:ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//    setContentView(R.layout.activity_main)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)binding.exitButton.setOnClickListener {// 点击事件处理逻辑}}
}

比如:
点击一次按钮就会打印一次“点击了按钮”

class MainActivity : AppCompatActivity() {lateinit var binding:ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//setContentView(R.layout.activity_main)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)binding.button.setOnClickListener{Log.e("MainActivity","点击了按钮")}}
}

在这里插入图片描述

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

相关文章:

  • Node学习笔记之MongoDB
  • awtk用C语言开发串口通信示例
  • CICD 流程学习(五)Jenkins后端工程构建
  • NSS [SWPUCTF 2021 新生赛]sql
  • 【Python机器学习】零基础掌握RandomTreesEmbedding集成学习
  • 【C++基础入门】42.C++中同名覆盖引发的问题
  • 【C++学习笔记】类和对象(上)
  • TinySnippet轻UI组件开发系列教程 — DataGrid选择事件
  • 热搜榜:最热门的话题文本排行榜API接口
  • vue中替换全局字体
  • 【AGC】.p12证书文件如何获取MD5
  • vue2 quill 视频上传 ,基于ruoyi vue,oss
  • YOLOv8改进实战 | 更换损失函数之MPDIOU(2023最新IOU)篇
  • 图的应用1.0-----最小生成树问题
  • 【计算机网络笔记】网络应用对传输服务的需求
  • IDEA启动报错:Command line is too long的解决办法
  • Android 中的 本地广播LocalBroadcastManager
  • 题目 1120: C语言训练-“水仙花数“问题2python详解)——练气三层后期
  • sheng的学习笔记-【中】【吴恩达课后测验】Course 3 - 结构化机器学习项目 - 第二周测验
  • 基于Pytorch的驾驶员分心行为实时检测
  • 【uniapp】小程序开发7:自定义组件、自动注册组件
  • Modbus转MQTT以太网网关MQT-802主要特点和典型应用
  • Go学习第五章——函数与包
  • 【Python 常用脚本及命令系列 5 -- 如何使用 BeautifulSoup 解析CSDN网页表格中的数据】
  • OpenFeign实现分析、源码解析
  • 2023 10月最新Vmd 下载安装教程,WindowsLinux
  • Photoshop(PS)安装教程(图文教程超详细)
  • C++模版进阶
  • CloudCompare
  • 【算法小课堂】深入理解前缀和算法