2016-06-23 19 views
7

Ich arbeite an einer Android App und Realm, und ich muss ein Enum-Attribut für eines meiner Objekte erstellen; aber ich habe in diesem post entdeckt, dass Realm enum noch nicht unterstützt.Enums Unterstützung mit Realm?

Meine Aufgabe ist es wie folgt aus:

public class ShuttleOption extends RealmObject { 
    private int Id; 
    private String Label; 
    private ShuttleTypes OriginShuttleType; 
} 

und meine Enum-Klasse (ShuttleTypes) entspricht:

HOME = 1; 

und

WORK = 2; 

jemand kann mir empfehlen, wie es zu tun ?

Antwort

19

können Sie das Muster in der Ausgabe beschrieben verwenden: https://github.com/realm/realm-java/issues/776#issuecomment-190147079

Im Grunde ist es als String in Realm speichern und konvertiert es in und aus gehen:

public enum MyEnum { 
    FOO, BAR; 
} 

public class Foo extends RealmObject { 
    private String enumDescription; 

    public void saveEnum(MyEnum val) { 
    this.enumDescription = val.toString(); 
    } 

    public MyEnum getEnum() { 
    return MyEnum.valueOf(enumDescription); 
    } 
}