В настоящее время я пытаюсь добавить RealmObject в RealmList внутри другого RealmObject.Добавление RealmObject в RealmList в Android
Так вот как я это делаю сейчас.
Сначала я создать и сохранить RealmObject под названием "RouteRealm", как это:
public void insertNewRoute(int routeId, long routeDate) {
realm.beginTransaction();
RouteRealm routeRealm = realm.createObject(RouteRealm.class);
routeRealm.setId(routeId);
routeRealm.setDate(routeDate);
realm.commitTransaction();
}
Класс RealmObject выглядит следующим образом:
public class RouteRealm extends RealmObject {
@PrimaryKey
private int id;
private long date;
private RealmList<RoutePointRealm> routePoints;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public long getDate() {
return date;
}
public void setDate(long date) {
this.date = date;
}
public RealmList<RoutePointRealm> getRoutePoints() {
return routePoints;
}
public void setRoutePoints(RealmList<RoutePointRealm> routePoints) {
this.routePoints = routePoints;
}
}
указанных работ. Проблема возникает, когда я пытаюсь добавить RoutePointRealm в список, называемый routePoints. Вот мой код для добавления объекта RoutePointRealm к списку:
public void insertNewRoutePoint(int routeId, String address, float latitude, float longitude, long routePointId, long routePointTime) {
realm.beginTransaction();
RouteRealm routeRealm = realm.where(RouteRealm.class).equalTo("id", routeId).findFirst();
RoutePointRealm routePointRealm = realm.createObject(RoutePointRealm.class);
routePointRealm.setAddress(address);
routePointRealm.setLatitude(latitude);
routePointRealm.setLongitude(longitude);
routePointRealm.setRoutePointID(routePointId);
routePointRealm.setRoutepointTime(routePointTime);
routeRealm.getRoutePoints().add(routePointRealm);
realm.copyToRealmOrUpdate(routeRealm);
realm.commitTransaction();
}
И в RoutePointRealm выглядит следующим образом:
public class RoutePointRealm extends RealmObject {
@PrimaryKey
private long routePointID;
private float longitude, latitude;
private long routepointTime;
private String address;
public long getRoutePointID() {
return routePointID;
}
public void setRoutePointID(long routePointID) {
this.routePointID = routePointID;
}
public float getLongitude() {
return longitude;
}
public void setLongitude(float longitude) {
this.longitude = longitude;
}
public float getLatitude() {
return latitude;
}
public void setLatitude(float latitude) {
this.latitude = latitude;
}
public long getRoutepointTime() {
return routepointTime;
}
public void setRoutepointTime(long routepointTime) {
this.routepointTime = routepointTime;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
По какой-то причине, RoutePointRealm добавляются в список, но все его поля устанавливаются в ноль и нуль. Я отлаживал свое приложение, чтобы убедиться, что все параметры содержат правильные значения с правильными типами данных и т. Д. Поэтому теперь я знаю, что проблема связана с методами Realm.
Надеюсь, кто-то может понять, что случилось. Любая помощь будет оценена.