gpt4 book ai didi

android - 无法修改写入事务 Realm Android 之外的托管对象

转载 作者:行者123 更新时间:2023-12-02 05:39:21 27 4
gpt4 key购买 nike

我在更新 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com