DataBinding基础使用

最近公司里没什么任务,所以自己学了学DataBinding,在这分享一下我所学到的内容

1、启用DataBinding
现在的android studio基本上都配有DataBinding的依赖库,只不过我们在使用的时候需要启用而已在项目的build.gradle的android中加入这段代码

 buildFeatures {
        dataBinding = true
    }

2、将布局转换成DataBinding布局
在这里插入图片描述
选择我们布局中的根布局,我的电脑是Mac,所以用的是option+回车,选择第一个,按下回车
在这里插入图片描述
这样布局就变成了DataBinding布局,接下来就是DataBinding的使用了
3、DataBinding使用
因为是我自己写的一个小项目,所以没加入MVVM来使用,我在这就重点说一下这个DataBinding点击事件的使用吧

<data>
        <variable
            name="click"
            type="com.example.utils.MainActivity.ProxyClick" />
    </data>

这个是在布局中声明的内容,在布局中声明这个内容时,在activity中也要有对应的方法

 inner class ProxyClick{

        fun goNewActivity(){
            Log.e("TAG", "Go: ????" )
            val intent = Intent(this@MainActivity,GuidelineActivity::class.java)
            startActivity(intent)
        }
    }

这是activity中对应的方法其中这个goNewActivity方法是我给布局中控件加的一的点击方法

<ImageView
            android:id="@+id/iv_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="@{()->click.goNewActivity()}"
            app:layout_constraintTop_toBottomOf="@+id/tv_scroll"
            app:layout_constraintLeft_toLeftOf="parent" />

这个就是布局中给imageview添加点击事件,android:onClick="@{()->click.goNewActivity()}"这个是固定写法,click是你在上面data中声明的名字,后面这个goNewActivity()就是你在activity中声明的方法,
这样一个点击事件基本上就完成了,接下来就是在activity中绑定视图了

 private val mDataBind : ActivityMainBinding by lazy {
        DataBindingUtil.setContentView<ActivityMainBinding?>(this,R.layout.activity_main).apply {
            click = ProxyClick()
        }
    }

我这使用的是kotlin,可能有些还在使用java的不是适应,在这我就不多声明了,这个ActivityMainBinding是系统自动生成的,他这个命名规则就是Activity+你activity的名字+Binding

.apply {
            click = ProxyClick()
        }

这个是把点击事件绑定在我们这个初始化出来的dataBinding上,然后就可以使用了,

我这个使用讲解的不是特别清晰,因为我也在学习中,我在这是分享一下我的心得,如果有什么问题,欢迎指正,谢谢
拜了个拜

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值