我刚刚了解了王国,我突然想到一些奇怪的事情。我有3个活动,我们称之为A,B和C。
在活动A(主屏幕)中,我调用服务从internet下载数据并将其存储在领域中。
在活动B(视图屏幕)中,我使用RealmResult和recyclerview显示所有数据
List<Data> dataList = new ArrayList<>();
recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
rvAdapter = new RvAdapter(dataList);
recyclerView.setAdapter(rvAdapter);
RealmResults<Data> manyData = realm.where(Data.class)
.equalTo("date", currentDate)
.findAll();
for (int i = 0; i < manyData.size(); i++) {
dataList.add(new Data(manyData.get(i).getName(),manyData.get(i).getAge()));
}
rvAdapter.notifyDataSetChanged();
在活动C(插入/更新屏幕)中,我尝试插入或更新数据
首先,从活动A和B来看,没有什么问题。recyclerview按我的预期显示数据。在我更新活动C中的一个对象之后,发生了一些奇怪的事情。
使用
Data data = new Data();
data.setId(id);
data.setName(name);
data.setAge(age);
data.setDate(today);
realm.beginTransaction();
realm.copyToRealmOrUpdate(data);
realm.commitTransaction();
realm.close();
finish();
完成后();活动C从堆栈中清除,并显示活动B。但是我更新的数据被从recyclerview中删除了,这很奇怪。当我在Activity B中打印manyData.size()时,它显示大小小于1个元素。有人能给我一些指导吗?