У меня проблемы с обновлением объекта области. У меня есть 4 фрагмента. Я перенесу значение из одного фрагмента в другой. Всего 16 полей. 1-й фрагмент содержит 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();
}
Теперь я получаю значения из первого фрагмента во второй фрагмент, используя этот метод: -
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;
}
Здесь я правильно получаю объект. Но когда я обновляю объект значениями Второго фрагмента, я получаю эту ошибку «Невозможно изменить управляемые объекты вне транзакции записи»
Во втором фрагменте я обновляю объект: -
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();
}
Помощь будет оценена! Заранее спасибо