Android 安卓DataBinding(二)·入门


DataBinding介绍

DataBinding 是谷歌官方发布的一个框架,其作用是实现数据绑定(Data binding),同时,也是因为有它,可以在安卓(Android)上实现MVVM架构。关于MVVM架构,请看完 Android 安卓DataBinding用法(一)Android 安卓DataBinding用法(二) 之后,再看我博客详解!


开始准备

本篇文章是深一层理解 DataBinding 用法,在使用DataBinding之前,需要先往Modle中android之下加入dataBinding,如下。

......

android {
    ......
    dataBinding {
        enabled = true
    }
}


深入了解 DataBinding

再上一期(Android 安卓DataBinding用法(一)·基础)讲了 DataBinding 的基础用法,如果你还没有看,请先去看完之后,再看此文章!


在代码中对TextView进行赋值

//使用ActivityMainBinding为id是textView2的TextView赋值
activityMainBinding.textView2.setText("我是新的值");

TextView默认值

根据上篇文章紧接着,如果在People没有赋值的时候,People的值是空的,此时TextView什么都不显示,而这事恰巧又一个默认值显示在TextView之上,这时候就需要用到 default ,如下写法,值不能出现空格。

<TextView
	......
    android:text="@{data.name,default = HelloWorld}"
    ...... />

这是以在TextView上输出 HelloWorld 举例!如下图:
在这里插入图片描述


使用class属性

你也可以通过对data标签使用 class 属性来对 ViewDataBinding 进行命名,如下:

<data class="ActivityMainBinding2">

    <import type="com.lkdot.mvvm.bean.PeopleBean" />

    <variable
        name="data"
        type="PeopleBean" />

</data>

当命名为 ActivityMainBinding2 之后,就要在Activity中修改了!
将其 ActivityMainBinding 修改为 ActivityMainBinding2

private ActivityMainBinding2 activityMainBinding2;

当然 DataBinding 不仅仅只是有这些功能,也不仅仅是只有这一种使用场景,它还可以用于Fragment中,甚至Recyclerview(列表中)

在Fragment中实现:

public class ThisFragment extends Fragment {

    private ThisFragmentBinding thisFragmentBinding;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        thisFragmentBinding  = DataBindingUtil.inflate(inflater, R.layout.this_fragment, container, false);
        return thisFragmentBinding.getRoot();
    }
}

RecyclerView自然也不用多说,也可以通过这样的方式进行绑定!
下一期:Android 安卓DataBinding(三)·单向绑定 BaseObservable



发布了99 篇原创文章 · 获赞 1020 · 访问量 76万+

猜你喜欢

转载自blog.csdn.net/qq_40881680/article/details/101781705