java - 将视图模型作为参数传递
问题描述
在其他类中引用视图模型作为参数是否合适/可接受?有没有内存泄漏?
LoadData(viewmodel)
MainFragment.java
public class MainFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//DataViewModel
DataViewModel model = new ViewModelProvider(requireActivity()).get(DataViewModel.class);
//This is the callback method with viewmodel as argument
new GetDataUtil().LoadData(model);
model.getListData().observe(getViewLifecycleOwner(), item -> item.getNote()); //UI update work in progress
return view;
}
}
GetDataUtil.java
public class GetDataUtil {
List<Note> listData = new ArrayList<>();
//Asynchronous method to load data from internet, in this case firestore
//This is what I mean when using viewmodel as parameter
public void LoadData(DataViewModel model){
//Asynchronous task start block {
listData.add(Note); //For loop add data from querysnapshot
model.getListData().setValue(listData);
//Asynchronous task end block }
}
}
数据视图模型.java
public class DataViewModel extends ViewModel {
private MutableLiveData<List<Note>> listData = new MutableLiveData<>();
public MutableLiveData<List<Note>> getListData(){
return listData;
}
}
我仍然是android开发的初学者,如果有人向我展示有关使用viewmodel的规则的相关文章或文档会更好,这就是我想要理解的。谢谢
解决方案
推荐阅读
- javascript - 从 JavaScript 中的模块导入模块的正确方法是什么?
- javascript - 如何在 Angular JS 的自定义标签中访问 HTML?
- javascript - JavaScript映射返回对象数组而不是ojbect
- amazon-web-services - CloudFormation 堆栈错误 - GetObject 时发生错误。S3 错误代码:NoSuchKey
- android - Firebase Analytics 显示的数据不准确
- laravel - 得到错误'试图获取非对象的属性'id''即使 dd 函数正确返回
- c# - 工厂设计模式(不同签名)
- python - 无法将一些难以辨认的内容处理为可读
- php - 如何使用 SQL 连接合并表?
- c++ - Qt 应用程序意外 LanguageChange 事件