gpt4 book ai didi

android - ViewModel 和数据绑定(bind)

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:29 27 4
gpt4 key购买 nike

Android 最近推出了 Architecture Components特别是 ViewModel , 这是

designed to store and manage UI-related data so that the data survives configuration changes such as screen rotations

在Google提供的例子中,ViewModel是这样使用的:

public class MyActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
MyViewModel model = ViewModelProviders.of(this).get(MyViewModel.class);
model.getUsers().observe(this, users -> {
// update UI
});
}
}

问题:ViewModel 如何与 Data Binding 相关联? ?

我的意思是,在数据绑定(bind)的情况下,将有一个 binding 为 UI 提供数据。

它会看起来像这样吗:

...
model.getUsers().observe(this, users -> {
// update binding, that will auto-update the UI?
});
...

最佳答案

您可以在布局 xml 文件中声明 View 模型类型的变量。在您的 viewmodel 类中实现公共(public)方法,通过这些方法将数据绑定(bind)到 ui。

那么你只需要在onCreate中将 View 模型设置为绑定(bind)即可。当您在数据绑定(bind)中设置 View 模型实例时,已经加载到 View 模型中的数据将被设置为重新创建的布局。

如果您的布局中有回收 View ,您可以在 View 模型类中实现一些公共(public)方法,如 initRecyclerView() 并在绑定(bind)中设置 View 模型后在 onCreate() 中调用它,或者可以从 View 模型通过数据绑定(bind)也是如此。

关于android - ViewModel 和数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44442251/

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