Android 使用域更新列表中的现有项
我正在尝试为特定id更新域中的现有列表项 这是我的json结构 我想把rec id 102的名字从Remeo改为AbbyAndroid 使用域更新列表中的现有项,android,realm,Android,Realm,我正在尝试为特定id更新域中的现有列表项 这是我的json结构 我想把rec id 102的名字从Remeo改为Abby RealmResults<Appointment> checkData = realm.where(Collage.class).equalTo("EmployeeList.empid","102").findAll().where().equalTo("EmployeeList.empid","102").findAll(); if(checkData.
RealmResults<Appointment> checkData = realm.where(Collage.class).equalTo("EmployeeList.empid","102").findAll().where().equalTo("EmployeeList.empid","102").findAll();
if(checkData.size() > 0){
checkData.get(0).getEmployeeLists().remove(0);
checkData.get(0).getEmployeeLists().add(newEmployeeListItem);
realm.copyToRealmOrUpdate(checkData);
}
例如,如果我在EmployeList项中有更多字段
empid、empname、empaddress、empphone等
然后在这种情况下,如果列表中存在整个EmployeeList项,我想替换它。如果您知道名称已更改,但如果我在EmployeeList项中有10个字段,并且用户已从tht更改了5个项,则可以这样做。我想替换整个列表项“我该怎么做”,就像我说的那样。您需要访问给定的领域对象,将数据写入其中,然后提交。但是,您也可以对该对象调用removeFromRealm并添加另一个具有相同ID的对象,但为此,您仍然必须选择该对象。从技术上讲,要从列表中删除,您必须使用项目上的removeFromRealm将其从域中删除。
// in transaction
Employee employee = realm.where(Employee.class).equalTo("empid", 102).findFirst();
if(employee != null) employee.setName("Abby");
realm.commitTransaction();