我了解架构组件中的ViewModel用于存储和管理数据,因此在配置更改期间它不会丢失。
例如,我的 Activity 与LiveData或使用存储数据无关。我应该仍然通过ViewModel吗?或直接实例化Repo类并调用插入方法?我希望这有道理
我使用ViewModel的示例
public class MainViewModel extends AndroidViewModel {
private DataRepo dataRepo;
private LiveData<List<Group>> groupList;
private LiveData<List<Bill>> billList;
public MainViewModel(Application application) {
super(application);
dataRepo = new DataRepo(this.getApplication));
groupList = dataRepo.getGroup();
billList = dataRepo.getBill();
}
public LiveData<List<Group>> getGroupList() {
return groupList:
}
public LiveData<List<Bill>> getBillList() {
return billList:
}
public void insertGroupAndMember(Group group) {
dataRepo.insertGroupAndMember(group);
}
public void insertBills(List<Bill> bills) {
dataRepo.insertBills(bills);
}
public List<Member> getMemberList(Group group) {
return dataRepo.getMembers(group);
}
}
最佳答案
我认为您想使用ViewModel来保持UI Controller 尽可能的干净。您的 View 模型应调用存储库以执行简单的CRUD操作。
请参阅以下文档中的snippet: