2016-08-12 6 views
3

Ich entwickle das Android-Projekt mit Android Studio. Ich möchte Realm-Objekte mit onSaveInstanceState() in Kotlin speichern. Mein Code istKotlin - Reich und Paket

@Parcel(implementations = arrayOf(UserRealmProxy::class), 
     value = Parcel.Serialization.BEAN, 
     analyze = arrayOf(User::class)) 
open class User : RealmObject() { 
    open var name: String? = null 

    @ParcelPropertyConverter(ListParcelConverter::class) 
    open var Items: RealmList<Item>? = null 
} 

aber es gibt einige Fehler beim Kompilieren:

'Unresolved reference: UserRealmProxy' 
'An annotation parameter must be a compile-time constant' 

Sicher, UserRealmProxy bereits existiert, weil bereits das Projekt kompiliert wurde. auch @ParcelPropertyConverter(ListParcelConverter::class) funktioniert nicht. es verursacht Ausnahme in Laufzeit:

'java.io.NotSerializableException: io.realm.RealmList' 

Aber dieser Code ist in Java erstellt.

Ich brauche deine Hilfe.

+0

Benötigen Sie **, um das Objekt zu requirieren? – EpicPandaForce

+0

Zuerst bekam ich die gleiche Meldung 'Ungelöste Referenz: UserRealmProxy', aber es verschwindet nach dem Erstellen des Projekts. – zaki50

+0

Können Sie '@field: ParcelPropertyConverter (ListParcelConverter :: class)' anstelle von '@ParcelPropertyConverter (ListParcelConverter :: class)'? – zaki50

Antwort

0

Wahrscheinlich werden Sie an setter annotieren. Bitte versuchen Sie es.

@Parcel(implementations = arrayOf(UserRealmProxy::class), 
    value = Parcel.Serialization.BEAN, 
    analyze = arrayOf(User::class)) 
open class User : RealmObject() { 
    open var name: String? = null 
    open var Items: RealmList<Item>? = null 
    @ParcelPropertyConverter(ListParcelConverter::class) set 
}