我在整个代码的两个关键位置都遇到了这个问题,无法解决。我有以下问题:我想通过数据库检索信息并同时更新所有信息。我有一个带有普通存储库和ViewModel的会议室数据库。我的代码是这样的:
daysViewModel.getStopsBiggerThan(day).observe(this, new Observer<List<DayActivity>>() {
@Override
public void onChanged(List<DayActivity> dayActivities) {
Log.d("stop_please_in_bigger", dayActivities.toString());
if (sort == 1) {
for (DayActivity stop : dayActivities) {
DayActivity new_stop = new DayActivity(stop.getTitle_Day(), stop.getLocation_Day(), stop.getStars_Day(),
stop.getOpening_hours_1_Day(), stop.getOpening_hours_2_Day(), stop.getOpening_hours_3_Day(),
stop.getNotas_Day(), stop.getDay_Day() - 1, stop.getStarttime_Day(),
stop.getEndtime_Day(), stop.getOrder_Day());
new_stop.setId_Day(stop.getId_Day());
daysViewModel.update(new_stop);
}
}
}
});
首先,我尝试使用一个简单的列表而不是LiveData,但是它只是返回了一个空对象。我还试图包括一个变量,使其像开关“ sort”一样工作,但它不起作用。
正如您到现在大多数人可能已经了解的那样,问题在于,通过在onChanged的void上更改数据库查询信息,我正在形成恶性循环。
结果证明这是一个愚蠢的问题……只需尝试定义一个变量并对其进行操作!