2017-05-20 4 views
0

Ich verwende das RealmObject Modell für databinding. Es funktionierte gut, aber jetzt möchte ich meine Ansichten aktualisieren, wenn sich Daten ändern und ich implementiert Observable.Android. Verwenden des RealmObject mit Datenbindung

Das Modell ist:

public class RealmArticle extends RealmObject implements Observable { 

    public RealmArticle() { 
    } 

    private PropertyChangeRegistry registry = 
      new PropertyChangeRegistry(); 

    @Bindable 
    public String getCountText() { 
     return countText; 
    } 

    public void setCountText(String countText) { 
     this.countText = countText; 
     registry.notifyChange(this, BR.obj); 
    } 

    @Override 
    public void addOnPropertyChangedCallback(OnPropertyChangedCallback callback) { 
     registry.add(callback); 
    } 

    @Override 
    public void removeOnPropertyChangedCallback(OnPropertyChangedCallback callback) { 
     registry.remove(callback); 
    } 
} 

Das Problem ist, dass RealmObject nicht die Felder PropertyChangeRegistry Typ nicht unterstützt.

Android Studio sagt: Error:(18, 8) error: Field "registry" of type "android.databinding.PropertyChangeRegistry" is not supported.

Gibt es eine Möglichkeit, diese Schnittstelle zu implementieren, ohne RealmObject Funktionalität zu verletzen?

Antwort

1

Wie die documentation of RealmObject Staaten

Eine Anmerkung Prozessor eine Proxy-Klasse für Ihre RealmObject Unterklasse schaffen. Folgende Felddatentypen werden unterstützt:

  • boolean/Boolean
  • kurz/Short
  • int/Integer
  • long/Lange
  • Schwimmer/
  • Doppel/Doppel
  • Float
  • byte []
  • Zeichenfolge
  • Datum
  • Jede RealmObject Unterklasse
  • Realmlist

Felder mit Ignore kommentierten nicht über diese Einschränkungen und erfordern weder einen Getter oder Setter.

So können Sie das Feld aus der Proxy-Generation weglassen.

Alternativ können Sie das Java-Schlüsselwort verwenden, um dasselbe zu erreichen.

3

Es war genug, Ignore Annotation zu diesem Feld hinzuzufügen.

+1

transient wird auch seit 3.2.0 funktionieren – EpicPandaForce

Verwandte Themen