Android Probleme mit der Realm Datenbank

Hallo,
ich habe ein Problem mit der Realm-Datenbank, und zwar habe ich folgendes vor:

Die Variablen in meiner TestItem Klasse werden ja automatisch in der Realm Datenbank erstellt, aber ich brauche auch eine Möglichkeit bestimmte Variablen anderweitig zu setzen, ohne das diese in der Realm Datenbank erstellt wird.
Ich habe z.B. für das Feld testVariable @Ignore gesetzt, leider kann ich diesen Wert der Variable dann nicht ändern, diese bleibt immer auf 0.

Java:
public class TestItem extends RealmObject {
    @PrimaryKey
    private long id;
    private String title;
    @Ignore
    private int testVariable;
    private boolean active;

    public TestItem() {
    }

    public int getTestVariable() {
        return testVariable;
    }

    public void setTestVariable(int testVariable) {
        this.testVariable = testVariable;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public boolean isActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }
}
Java:
public RealmResults<TestItem> getTestItems() {
  RealmResults<TestItem> results = realm.where(TestItem.class).findAll();
  for (int i=0; i<results.size(); i++) {
    results.get(i).setTestVariable(103); //Funktioniert nicht, der Wert bleibt immer auf 0
    System.out.println("Test: "+results.get(i).getTestVariable());
  }
  return results;
}
Ich habe auch versucht die Liste in einem ArrayList hinzuzufügen, da funktioniert es, nur habe ich dann später Probleme die Datenbank zu aktualisieren, da Realm die Daten ja eigentlich automatisch Aktualisiert, wenn ich in meiner Liste die Items ändere.
Java:
public List<TestItem> getTestItems() {
  RealmResults<TestItem> results = realm.where(TestItem.class).findAll();
  List<TestItem> list = new ArrayList<TestItem>();
  list.addAll(results);
  for (int i=0; i<list.size(); i++) {
    list.get(i).setTestVariable(103); //Funktioniert
    System.out.println("Test: "+list.get(i).getTestVariable());
  }
  return list;
}
Hoffentlich könnt ihr mein Problem verstehen und würde mich freuen, wenn mir da wer helfen kann.

Ich bedanke mich schon mal im Voraus.

Gruss
 
Vielen Dank für die Antwort.
Die Einträge sind ja geladen und habe mit load() kein Unterschied gemerkt.
Mir ging es nur dadrum spezielle Variablen im nachhinein zu füllen, ohne das diese automatisch mit in die Datenbank geschrieben wird.

Ich habe das Problem jetzt anders gelöst.
Bei meiner App kann man von der Liste die Einträge in Favoriten speichern, da ich bei der Favoriten Klasse nur die ids von den Einträgen gespeichert habe, wollte ich in Favoriten die Einträge anhand der ids laden, das hatte so nicht richtig funktioniert.

Jetzt habe ich einfach in der Favoriten Klasse einen weiteren Feld "TestItem testItem;" hinzugefügt und beim hinzufügen zu Favoriten, speichere ich einfach das gewünscht Item in testItem, in der Favoriten Klasse.
Jetzt, wenn ich das Item z.B. änder, dann ändert sich das auch automatisch in der Favoriten Liste, falls vorhanden.

Vorhin habe ich nichts mit Favoriten erwähnt, da ich erst einmal einen Test versucht hatte.

Trotzdem, vielen Dank.

Gruss
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben