架构组件—Android应用中使用视图绑定(binding)

一. 概述

通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。
在大多数情况下,视图绑定会替代 findViewById。


二. 在Activity中使用视图绑定(binding)

步骤一:在应用级 build.gradle (非项目级build.gradle)文件中开启viewBinding

视图绑定功能启用。需将 viewBinding 元素添加到其 build.gradle 文件中,如下例所示:

    viewBinding {
   
        enabled = true
    }

步骤二:在Activity Java文件中使用视图绑定功能

2.1 导入ActivityMainBinding
import com.example.demo.databinding.ActivityMainBinding;
2.2 定义binding变量
    // 声明binding用于视图绑定功能
    private ActivityMainBinding binding;
2.3 初始化binding变量
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        // 使用binding视图绑定功能
        /*
         * 通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。
         * 绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。
         * */
        // 初始化binding 
        binding = ActivityMainBinding.inflate(getLayoutInflater()
  • 15
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 RecyclerView 适配器使用视图绑定,需要进行以下步骤: 1. 在项目级别的 build.gradle 文件,确保已经添加了以下依赖项: ```groovy dependencies { ... classpath "com.android.tools.build:gradle:4.0.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72" classpath "com.google.gms:google-services:4.3.3" } ``` 2. 在应用级别的 build.gradle 文件,添加以下依赖项: ```groovy plugins { ... id 'kotlin-android' id 'kotlin-android-extensions' } android { ... buildFeatures { viewBinding true } } dependencies { ... } ``` 3. 在 RecyclerView 的 ViewHolder 添加一个视图绑定类的对象,例如: ```kotlin class MyViewHolder(private val binding: MyItemBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(data: MyData) { binding.textviewTitle.text = data.title binding.textviewDescription.text = data.description } } ``` 4. 在 RecyclerView 的适配器,创建 ViewHolder 并使用视图绑定类来初始化它,例如: ```kotlin class MyAdapter(private val dataList: List<MyData>) : RecyclerView.Adapter<MyViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { val binding = MyItemBinding.inflate(LayoutInflater.from(parent.context), parent, false) return MyViewHolder(binding) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { holder.bind(dataList[position]) } override fun getItemCount(): Int { return dataList.size } } ``` 这样就可以在 RecyclerView 的适配器使用视图绑定了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值