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

慈云数据 1年前 (2024-03-20) 技术支持 73 0

文章目录

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

      效果

      在这里插入图片描述

      实现源码

      class MainActivity : AppCompatActivity() {
          lateinit var binding:ActivityMainBinding
          override 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文件

          lateinit var binding:ActivityMainBinding
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
          //    setContentView(R.layout.activity_main)
              binding = ActivityMainBinding.inflate(layoutInflater)
              setContentView(binding.root)
          }
      }
      
          lateinit var binding:ActivityMainBinding
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
          //    setContentView(R.layout.activity_main)
              binding = ActivityMainBinding.inflate(layoutInflater)
              setContentView(binding.root)
              binding.exitButton.setOnClickListener {
                  // 点击事件处理逻辑
              }
          }
      }
      
          lateinit var binding:ActivityMainBinding
          override 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","点击了按钮")
              }
          }
      }
      
微信扫一扫加客服

微信扫一扫加客服