我在更新 Realm 对象时遇到问题。我有 4 个 fragment 。我将值从一个 fragment 转发到下一个 fragment 。总共有16个字段。第一个 fragment 包含 4 个,依此类推。首先,我使用此方法保存 4 前四个字段的对象:-
public static <T extends RealmObject> void InsertRecordinRealm(final Class<T> clazz, final T passedObject, final Integer integerd) {
Realm realm = getRealmInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.copyToRealmOrUpdate(passedObject);
}
});
realm.close();
}
现在,我使用此方法获取从第一个 fragment 到第二个 fragment 的值:-
public static <T extends RealmObject> T GetRecordById(Class<T> clazz, Integer id) {
RealmQuery<T> queryForUsern = getRealmInstance().where(clazz).equalTo("RealmId", 1);
T recordByid = queryForUsern.findFirst();
return recordByid;
}
在这里我正确地获取了对象。但是,当我使用第二个 fragment 的值更新对象时,我收到此错误“无法在写入事务之外修改托管对象”
在第二个 fragment 中,我正在更新对象:-
public static <T extends RealmObject> void UpdateRecordinRealmByID(final T passedObject, final Class<T> clazz, final Integer Id) {
Realm realm = getRealmInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
RealmQuery<T> queryForUsern =
getRealmInstance().where(clazz).equalTo("RealmId", 1);
T recordByid = queryForUsern.findFirst();
recordByid = passedObject;
realm.insertOrUpdate(recordByid);
}
});
realm.close();
}
帮助将不胜感激!提前致谢
最佳答案
嗯,就我而言,一旦我将代码移入此 realm.executeTransaction {}<,我就会更新
错误消失了。realm.executeTransaction {}
之外的 Realm 对象的值
关于android - 无法修改写入事务 Realm Android 之外的托管对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50269983/