android studio使用DataBinding

DataBinding 是谷歌官方发布的在android上对MVVM设计模式的一个实现框架,其作用是实现数据绑定。

Android DataBinding主要实现了View和ViewModel的双向绑定,包括用户的响应。并且实现了自动更新。

DataBinding优点:

1.大量减少Activity内的代码。

2.数据能够单向或者双向绑定到布局文件当中,这样有助于防止内存泄露,

而且能够自动进行空检测以避免空指针异常

在你的module中的build.gradle文件中添加dataBinding配置

(添加完成后要编译一下)

android {

......

dataBinding {

enabled = true

}

}

设置布局(这里以 activity_mail.xml 为例)

<data>:这个元素定义了布局文件中可以使用的数据源。

<variable:这个元素定义了一个变量,它可以在布局文件中被引用。

name="idol":这是变量的名称,在布局文件中可以通过这个名称来引用变量。

type="com.example.databinding.Idol":这是变量的类型,它指定了变量的数据类型。在这个例子中,Idol是一个Java类,它可能定义了一些属性,名字、等级,这些属性可以在布局文件中被绑定到UI组件上。

MainActivity中的写法
复制代码
 public class MainActivity extends AppCompatActivity{

        @Override
        protectedvoidonCreate(BundlesavedInstanceState){
            super.onCreate(savedInstanceState);
            //默认情况下,绑定类的名称是基于布局文件的名称生成的,
            //它是将布局文件名开头大写并加上"Binding"而成。
            //这个类拥有所有从属性(例如用户变量)到布局的绑定关系并知道如何赋值绑定表达式。
            //最简单的方法创建绑定的方法就是通过反射。
            ActivityMainBinding binding = 
                        DataBindingUtil.setContentView(this,R.layout.activity_main);

            UserBean user = new UserBean("苏青岩","https://blog.csdn.net/qq_35953420");
            //绑定数据
            binding.setData(user);
            //修改idtextView1的控件的内容
            //binding.textView1.setText("苏青岩大帅哥");

        }
    }
Fragment中使用部分代码
复制代码
public class Frag extends Fragment {
    
    private ViewDataBinding binding;

    @Override
    public View onCreateView(LayoutInflater inf, ViewGroup container, Bundle state) {
        binding = DataBindingUtil.inflate(inf, R.layout.frag, container, false);
        return binding.getRoot();
    }
}
相关推荐
清空mega4 小时前
第15章 综合项目——网上订餐系统
android
f***45325 小时前
基于SpringBoot和PostGIS的各省与地级市空间距离分析
android·前端·后端
珹洺6 小时前
Java-Spring入门指南(三十一)Android意图(Intent)
android·java·spring
龙泉寺天下行走7 小时前
Vscode 配置C++ Mingw调试、编译环境-无需修改系统PATH变量的VS Code配置方法
c++·ide·vscode
数据的世界018 小时前
Visual Studio 2026 正式发布:AI 原生 IDE 与性能革命的双向突破
ide·人工智能·visual studio
b***9108 小时前
【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus
android·前端·后端·mybatis
q***73558 小时前
删除文件夹,被提示“需要来自 TrustedInstaller 的权限。。。”的解决方案
android·前端·后端
Android系统攻城狮9 小时前
Android内核进阶之获取当前PCM周期snd_pcm_lib_period_bytes:用法实例(九十三)
android·pcm·android内核·音频进阶·alsa音频
源码君miui520869 小时前
JAVA国际版同城服务同城信息同城任务发布平台APP源码Android + IOS
android·java·ios
FrameNotWork10 小时前
Android Repo Manifest 文件详解(基于 Redroid 定制示例)
android