打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ViewBinding的简单使用

Android自家的,又可以省去findviewbyid(),而且Butterknife上大神都已经推荐使用的,还有什么理由不去改写呢

build.gradle

开启viewBinding功能

android {
	...
	viewBinding.enabled = true
}

上面方法提示过时,更改为下面的方法

android {
      ...
    buildFeatures{
        viewBinding true
    }
}

Activity 绑定

说明一下,这个是kotlin语法的,java语法的写法差不多,只是语法有些差异

private lateinit var mBinding: ActivityEbookBinding

//有个坑特别说明一下,这里的ActivityEbookBinding不是什么内部类,而是你的layout对应的databinding类,开始一直以为有什么包没有引入呢。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    mBinding = ActivityEbookBinding.inflate(layoutInflater)
    setContentView(mBinding.root)
}

java

这里还是放一下java语法的代码吧,省得还没有转到kotlin的朋友看了一头雾水
这里再强调一下,记得将我代码中的ActivityEbookBinding换成你自己 layout 对应的 binding 上,命名规则就是你的layout去掉下划线然后首字母大写然后末尾加上Binding就是了

private ActivityEbookBinding mBinding;
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    mBinding = ActivityEbookBinding.inflate(getLayoutInflater());
    setContentView(mBinding.getRoot());
}

调用

mBinding中可以直接根据id找到相应的控件进行操作

mBinding.bookContent.setText("HelloWorld");

这里再记录一个小坑,就是如果你的layout里面控件的id有使用“_”下划线的话,viewbinding也会将它去掉下划线改成驼峰命名,并不是你的控件没有被认到,害我找了半天才想到这一茬。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android Orientation Sensor(方向传感器)详解与应用
android中fragment与activity之间通信原理以及例子
android ListView详解
Android拍照,上传,预览综合【修改】
Android动画及图片的缩放和旋转
Android 仿微信之界面导航篇(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服