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();
    }
}
相关推荐
v***91308 小时前
Spring+Quartz实现定时任务的配置方法
android·前端·后端
wilsend8 小时前
Android Studio 2024版新建java项目和配置环境下载加速
android
兰琛8 小时前
Android Compose展示PDF文件
android·pdf
路人甲ing..9 小时前
Ubuntu怎么安装tar.gz (android-studio为例)
linux·ubuntu·kotlin·android studio
走在路上的菜鸟9 小时前
Android学Dart学习笔记第四节 基本类型
android·笔记·学习
百锦再10 小时前
第21章 构建命令行工具
android·java·图像处理·python·计算机视觉·rust·django
skyhh11 小时前
Android Studio 最新版汉化
android·ide·android studio
路人甲ing..11 小时前
Android Studio 快速的制作一个可以在 手机上跑的app
android·java·linux·智能手机·android studio
携欢14 小时前
PortSwigger靶场之Web shell upload via path traversal靶场通关秘籍
android
向着光芒的女孩19 小时前
【IDEA】关不了的Proxy Authentication弹框探索过程
java·ide·intellij-idea