2016-06-23 7 views
7

Pracuję nad aplikacją dla Androida i Królestwem i muszę utworzyć atrybut wyliczeniowy dla jednego z moich obiektów; ale odkryłem w tym post, że Realm nie obsługuje jeszcze enum.Wymienia obsługę z Realm?

Moim celem jest tak:

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

i moja klasa enum (ShuttleTypes) odpowiada:

HOME = 1; 

i

WORK = 2; 

Czy ktoś może zasugerować mi jak to zrobić ?

Odpowiedz

19

Można użyć wzoru opisanego w numerze: https://github.com/realm/realm-java/issues/776#issuecomment-190147079

Zasadniczo zapisać jako ciąg w Królestwie i przekształcić go tam iz:

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); 
    } 
}