我有两个DAO,两个存储库和两个POJO.有什么方法可以创建两个Livedata?我需要它为Recyclerview制作一个清单.
POJO是相似的对象.
ExpenseRepository:
public class ExpenseRepository {
private ExpenseDao expenseDao;
private LiveData> allExpenses;
public ExpenseRepository(Application application) {
ExpenseIncomeDatabase database = ExpenseIncomeDatabase.getInstance(application);
expenseDao = database.expenseDao();
allExpenses = expenseDao.getExpensesByDay();
}
public LiveData> getAllExpensesByDay() {
return allExpenses;
}
收入库:
public class IncomeRepository {
private IncomeDao incomeDao;
private LiveData> allIncomes;
public IncomeRepository(Application application) {
ExpenseIncomeDatabase database = ExpenseIncomeDatabase.getInstance(application);
incomeDao = database.incomeDao();
allIncomes = incomeDao.getIncomesByDay();
}
public LiveData> getAllIncomesByDay() {
return allIncomes;
}
费用:
@Dao
public interface ExpenseDao {
@Query("SELECT * FROM expense_table ORDER BY day")
LiveData> getExpensesByDay();
IncomeDao:
@Dao
public interface IncomeDao {
@Query("SELECT * FROM income_table ORDER BY day")
LiveData> getIncomesByDay();
public class DailyFragmentviewmodel extends Androidviewmodel {
private ExpenseRepository expenseRepository;
private IncomeRepository incomeRepository;
private LiveData,List>> combined;
private ExpenseDao expenseDao;
private IncomeDao incomeDao;
public DailyFragmentviewmodel(@NonNull Application application) {
super(application);
expenseRepository = new ExpenseRepository(application);
incomeRepository = new IncomeRepository(application);
combined = new DailyCombinedLiveData(expenseDao.getExpensesByDay(),incomeDao.getIncomesByDay());
}
public LiveData,List>> getExpensesAndIncomes() {
return combined;
}