也许这有点愚蠢,但我只是坚持这个:我有我的房间数据库 + 实体 + 道。实体有一个名为“成本”的列 - 所以基本上我想总结所有成本(当然,在跟踪是否有新输入时,所以检查总和是否已更改 - 如果是,当然更改值/文本视图)然后简单地将带有 .toString() 的值放入 TextView。我已经有一个带有适配器/视图模型/存储库类的 RecyclerView+CardView(他们只将输入的名称放入 CardView)我只是不知道将成本放在哪里 - 我认为我不需要一个新的 ViewModel/Repository 但是我应该把我的 Dao 的 sumAllCost() 方法放在哪里public class SubRepository {private SubDAO mSubDao;private LiveData<List<Sub>> mAllSubs;SubRepository(Application application){ SubDatabase db = SubDatabase.getInstance(application); mSubDao = db.getsubDAO(); mAllSubs = mSubDao.getAllSubs();}public LiveData<List<Sub>> getAllSubs(){ return mAllSubs;}public void insert (Sub sub){ new insertAsyncTask(mSubDao).execute(sub);}private static class insertAsyncTask extends AsyncTask<Sub, Void, Void> { private SubDAO mAsyncTaskDao; insertAsyncTask (SubDAO dao){ mAsyncTaskDao = dao; } @Override protected Void doInBackground(final Sub... params){ mAsyncTaskDao.addSub(params[0]); return null; }}}public class SubViewModel extends AndroidViewModel {private SubRepository mRepository;private LiveData<List<Sub>> mallSubs;public SubViewModel (Application application) { super (application); mRepository = new SubRepository(application); mallSubs = mRepository.getAllSubs();}public LiveData<List<Sub>> getAllSubs(){ return mallSubs;}public void insert (Sub sub){ mRepository.insert(sub);}}
添加回答
举报
0/150
提交
取消