zoukankan      html  css  js  c++  java
  • 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也会将它去掉下划线改成驼峰命名,并不是你的控件没有被认到,害我找了半天才想到这一茬。

  • 相关阅读:
    练习题 求字符串是否为回文
    JavaScript效果下载网站!
    遍历页面所有的Checkbox,显示选中的ID
    祝福自己生日快乐!
    【原创】datalist repeater 控件的行鼠标单击 以及 滑过特效
    删除此文 并不能解决问题
    javascript屏蔽脏字
    【MM系列】SAP 物料凭证增强
    【MM系列】SAP 客户增强
    【MM系列】SAP 交货单屏幕增强
  • 原文地址:https://www.cnblogs.com/ymtianyu/p/13208548.html
Copyright © 2011-2022 走看看