4

我的视图模型中有一些数据,我正在设置接收来自 livedata 的响应。我可以将这些数据绑定到我的 UI 而不是使用 pojo 吗?因此,每当我更改视图模型中的数据时,UI 也必须更改。

4

1 回答 1

4

借助 Beta 频道中提供的最新 Android Studio 版本 (3.1),您可以使用 LiveData 对象进行数据绑定。

是一篇很好的博客文章,介绍了如何使用视图模型中的 LiveData 进行绑定。

这也是我在片段中使用它的一个例子。

viewModel = ViewModelProviders.of(this, viewModelFactory).get(MyViewModel.class);

fragmentBinding = DataBindingUtil.inflate(inflater, R.layout.fragment,container,false);
fragmentBinding.setViewModel(viewModel);
fragmentBinding.setLifecycleOwner(this);

viewModel.getUser().observe(this, user-> {
        // do whatever you want ;)
    });

在你的xml中你必须用<layout>

需要定义变量

<data>
    <variable name="viewModel"  type="myproject.viewmodel.MyViewModel" />
</data>

@= 用于双向绑定,@ 用于单向绑定

android:text="@={viewModel.user.firstName}"
于 2018-02-22T11:12:00.930 回答