2016-08-12 2 views
3

Я разрабатываю проект Android с андроид-студией. Я хочу сохранить объекты области с помощью onSaveInstanceState() в kotlin. Мой кодkotlin - realm and parcel

@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 
} 

но есть некоторые ошибки при компиляции:

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

Конечно, UserRealmProxy существует уже потому, что уже проект был составлен. также @ParcelPropertyConverter(ListParcelConverter::class) не работает. это вызывает исключение во время выполнения:

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

Но этот код компилируется хорошо в Java.

Мне нужна ваша помощь.

+0

Вы ** нуждаетесь в ** для посылки вместо того, чтобы требовать объект? – EpicPandaForce

+0

Сначала я получил то же сообщение 'Unresolved reference: UserRealmProxy', но он исчез после создания проекта. – zaki50

+0

Можете ли вы попробовать '@field: ParcelPropertyConverter (ListParcelConverter :: class)' вместо '@ParcelPropertyConverter (ListParcelConverter :: class)'? – zaki50

ответ

0

Возможно, вы добавите комментарий к setter. Пожалуйста, попробуйте это.

@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 
} 
Смежные вопросы