作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 TODO 列表应用程序,用户可以在其中添加要执行的任务。任务有几类。我有以下情况:
viewModelMainActivity = new ViewModelProvider(this).get(ViewModelMainActivity.class);
viewModelMainActivity.getAllJob().observe(this, new Observer<List<Task>>() {
@Override
public void onChanged(List<Task> tasks) {
if(tasks.size() == 0) {
linearLayoutActivityMain.setVisibility(View.VISIBLE);
} else {
linearLayoutActivityMain.setVisibility(View.INVISIBLE);
}
taskAdapter.setTasks(tasks);
}
});
我从工作类别和其他类别中获取任务列表。感谢 ViewModel
中的 LiveData
,当添加或删除任务时,列表将会更新。
此外,我还有一个微调器,允许您选择任务类别以显示所选类别中的任务。
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
//How to get a List?
case 0:
Toast.makeText(this, "0", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this, "2", Toast.LENGTH_SHORT).show();
break;
}
}
由于ViewModel
中的数据类型是LiveData
,并且只有List<形式的数据,如何显示选定类别的任务列表
是在onChanged()
方法中获取的?
最佳答案
看看你的 ViewModel 会很好,但据我了解,你在 viewmodel 中输入的只是 liveData。
在您的 ViewModel 中,您可以将其他类型设置为 liveData
例如:
String toto = LiveData<String>()
关于java - 带有 Room 和 LiveData 的 MVVM - 如何从 LiveData 获取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60421052/
我是一名优秀的程序员,十分优秀!