gpt4 book ai didi

Android setVariable(BR.xyz, model) 和 databinding.setXYZ(model) 有什么区别

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:36:04 26 4
gpt4 key购买 nike

我正在研究 android 数据绑定(bind),遇到了我们可以使用以下两种方式设置模型的场景:

 User user = new User("User", "Abc"); // this is a model
dataBinding.setVariable(BR.user, user);
dataBinding.executePendingBindings(); // and we have to do this... Why?

我们也可以这样设置:

binding.setUser(user);

谁能解释一下这两者之间的区别是什么?

用户模型:

public class User{
public String fName;
public String lName;

public User(String fName, String lName){
this.fName = fName;
this.lName = lName;
}
}

最佳答案

考虑一下当您有一个不共享公共(public)绑定(bind)布局的抽象类时的情况(当然除了父类(super class) ViewDataBinding,所有绑定(bind)布局都继承自该父类(super class)):

public abstract classs EditorActivityFragment<T extends ViewDataBinding> {

在这个类的 onCreateView() 中,您将无法使用任何生成的方法将您的变量设置为绑定(bind),因为除了 ViewDataBinding 之外没有通用的父类(super class),因此您将被迫使用反射,或者你可以使用方便的方法setVariable():

binding.setVariable(BR.viewModel,myViewModel);

我希望这有助于更好地解释此方法的用例。

关于Android setVariable(BR.xyz, model) 和 databinding.setXYZ(model) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35309369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com