作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在研究 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/
本文整理了Java中us.ihmc.yoVariables.variable.YoFramePoseUsingYawPitchRoll.setXYZ()方法的一些代码示例,展示了YoFramePose
我正在研究 android 数据绑定(bind),遇到了我们可以使用以下两种方式设置模型的场景: User user = new User("User", "Abc"); // this is a
我是一名优秀的程序员,十分优秀!