在Activity中使用Toast findViewById() 与 ViewBinding

使用ViewBinding  要在  app -> src  里面  android{

                加上

viewBinding {
        enable = true
    }

}

做完后要 sncy 一下

然后转到 Activity

导包里加上:

import com.example.avtivitytest.databinding.FirstLayoutBinding

分析代码:

private lateinit var  firstActivityBinding: FirstLayoutBinding
  • rivate: 这是一个访问修饰符,表示该变量只能在当前类中被访问。
  • lateinit: 这是一个关键字,用于声明一个可延迟初始化的变量。这意味着在变量被使用之前,不需要立即进行初始化。
  • var: 这是一个关键字,用于声明一个可变变量。
  • firstActivityBinding: 这是变量的名称。
  • FirstLayoutBinding: 这是变量的类型。

综合起来,这段代码声明了一个私有的、可延迟初始化的变量firstActivityBinding,其类型为FirstLayoutBinding。这个变量可以在当前类中使用,但在使用之前不需要立即进行初始化。

firstActivityBinding = FirstLayoutBinding.inflate(layoutInflater)

FirstLayoutBinding.inflate(layoutInflater): 这是一个方法调用表达式,表示调用FirstLayoutBinding类的inflate方法,并将layoutInflater作为参数传递给该方法。

FirstLayoutBinding类的inflate方法是一个静态方法,用于将XML布局文件转换为对应的视图对象。它通常在Android开发中使用,用于将布局文件中定义的视图与代码中的变量进行绑定。

以下是一个简单的示例:

val binding: FirstLayoutBinding = FirstLayoutBinding.inflate(layoutInflater)

在这个示例中,inflate方法接收一个LayoutInflater对象作为参数,该对象用于将XML布局文件转换为视图对象。然后,它将返回一个FirstLayoutBinding对象,该对象包含了与布局文件中定义的视图相关联的变量。

通过使用FirstLayoutBinding类,开发者可以方便地访问和操作布局文件中的视图,而无需手动查找和操作视图对象。这提高了代码的可读性和可维护性。

setContentView(firstActivityBinding.root)

setContentView(firstActivityBinding.root) 是 Android 开发中常用的方法之一,用于将布局文件与当前活动(Activity)绑定。

具体解释如下:

  • setContentView() 是一个方法,用于设置当前活动的布局。它接受一个参数,即要显示的布局资源 ID 或 View 对象。
  • firstActivityBinding 是一个视图绑定对象,它是通过 Data Binding 库自动生成的,用于简化布局文件中视图的访问和操作。
  • rootfirstActivityBinding 中的一个属性,表示布局文件的根视图。在布局文件中定义的所有视图都可以使用 firstActivityBinding 进行访问和操作。

因此,setContentView(firstActivityBinding.root) 的作用是将布局文件中的根视图设置为当前活动的布局,使得可以在代码中方便地访问和操作布局中的视图。

root 通常指的是布局文件的根视图,它作为布局的容器,包含了其他所有子视图。

private fun initView() {
        firstActivityBinding.button1.setOnClickListener {
            Toast.makeText(this,"cliked The button 1",Toast.LENGTH_SHORT).show()
        }
    }

它的作用是初始化视图并设置按钮的点击事件监听器。

ok,全代码:

package com.example.activitytest

import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.example.avtivitytest.databinding.FirstLayoutBinding


class FirstActivity : AppCompatActivity() {
    private lateinit var  firstActivityBinding: FirstLayoutBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        firstActivityBinding = FirstLayoutBinding.inflate(layoutInflater)
        setContentView(firstActivityBinding.root)
        initView()
    }

    private fun initView() {
        firstActivityBinding.button1.setOnClickListener {
            Toast.makeText(this,"cliked The button 1",Toast.LENGTH_SHORT).show()
        }
    }

}

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值