问题描述
我有一个调用片段的活动,我从该片段收集添加到存储在视图模型中的哈希映射的输入,在父活动中,我有一个列表视图,当观察者检测到视图模型中实时数据的更改。我有一个自定义适配器,它从视图模型中获取哈希映射,并将在列表视图中正确显示哈希映射,但仅当我退出并返回到活动的实例时
列表没有更新,但哈希映射正在视图模型中填充。我可能使用了视图模型或观察者错误,但我迷路了,谷歌指南含糊不清,我仍在学习 Android。欢迎提出任何建议。
查看模型
private mutablelivedata<HashMap<String,Double>>taskListVM;
public LiveData<HashMap<String,Double>> getTasks(){
if(taskListVM == null){
taskListVM = new mutablelivedata<HashMap<String,Double>>();
}
return taskListVM;
}
public void setTasks(HashMap<String,Double> task){
taskListVM.setValue(task);
Log.d("Test","Myviewmodel,setTasks to HashMap" + taskListVM);
}
父活动调用观察者
//Testing view model
viewmodel = new viewmodelProvider(this).get(Myviewmodel.class);
//display tasks that have been created for this room
final Observer<HashMap<String,Double>> terror = new Observer<HashMap<String,Double>>() {
@Override
public void onChanged(HashMap<String,Double> stringDoubleHashMap) {
Map<String,Object> transformMap = new HashMap<String,Object>(stringDoubleHashMap);
ListView taskList = findViewById(R.id.listView);
adapter = new myAdapter(transformMap);
taskList.setAdapter(adapter);
}
};
viewmodel.getTasks().observe(this,terror);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)