gpt4 book ai didi

android - 如何在非 FragmentActivity 上使用 ViewModelProviders.of() 获取 ViewModel?

转载 作者:行者123 更新时间:2023-11-29 02:36:30 25 4
gpt4 key购买 nike

private void subscribeToModel() {
final MyViewModel model = ViewModelProviders.of(this)
.get(MyViewModel.class);

// Update the list when the data changes
model.getItems().observe(this, new Observer<List<Item>>() {
@Override
public void onChanged(@Nullable List<Item> items) {
// Do something useful
}
});
}

上述代码适用于“AppCompatActivity”或“FragmentActivity”。但是,它不适用于另一种类型的 Activity (例如,对我来说:GvrActivity)。 ViewModelProviders.of() 需要“FragmentActivity”。

还有其他观察数据库的方法吗?

至于DB,我用的是ROOM。

最佳答案

回答我自己的问题。

观察 Room 数据库是解决方案。感谢 CommonsWare。

这是完整的解决方案:

private void subscribeToModel() {
final DatabaseCreator databaseCreator = DatabaseCreator.getInstance();
LiveData<List<Item>> itemLiveData = databaseCreator.getDatabase().itemDao().getAllLiveData();
if(itemLiveData != null) {
itemLiveData.observe(this, new Observer<List<Item>>() {
@Override
public void onChanged(@Nullable List<Item> items) {
// Do something useful
}
});
}
}

关于android - 如何在非 FragmentActivity 上使用 ViewModelProviders.of() 获取 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46698922/

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