RealmObject AND Parcelable

Soy nuevo en Realm para Android, así que no estoy seguro de que me esté acercando de esta manera. Tengo una clase que se parece a esto:

public class Entry extends RealmObject implements Parcelable { ... } 

El problema es que la interfaz Parcelable contiene métodos como describeContents() writeToParcel() y RealmObjects no se supone que tienen otros métodos que getters y setters:

 Error:(81, 17) error: Only getters and setters should be defined in model classes 

Así que mi pregunta es: ¿Cómo puedo hacer que estos dos trabajen juntos? ¿Hay una mejor manera que creando una clase separada (quizá algo como RealmEntry )? Hacerlo resultaría en un montón de código duplicado …

Ahora hay una solución diferente para eso: sólo implementar la interfaz RealmModel en lugar de extenderse desde RealmObject :

 @RealmClass public class User implements RealmModel { } 

Puede encontrar más información en la documentación del reino .

UPDATE mayo de 2016: Esta respuesta es ahora anticuado a menos que ya utiliza Parceler. @Henrique de Sousa solución es mucho mejor.


En realidad, hay una solución. Puede obtener el resultado que desea si está dispuesto a utilizar una biblioteca de terceros (Parceler) para la generación Parcelable . Vea mi respuesta a esta otra pregunta , citada a continuación para mayor comodidad.

Con Parceler v0.2.16 , puede hacer esto:

 @RealmClass // required if using JDK 1.6 (unrelated to Parceler issue) @Parcel(value = Parcel.Serialization.BEAN, analyze = { Feed.class }) public class Feed extends RealmObject { // ... } 

A continuación, utilice Parcels.wrap(Feed.class, feed) lugar de Parcels.wrap(feed) todas partes, de lo contrario su aplicación se bloqueará con org.parceler.ParcelerRuntimeException: Unable to create ParcelableFactory for io.realm.FeedRealmProxy .

En este momento, no es posible implementar Parcelable en RealmObjects. Una solución es utilizar dos archivos de realm: el predeterminado como su almacén de objetos y uno especializado para guardar temporalmente para rotaciones, etc.

  • ¿Qué hará un SQLiteCursor si una columna es nula?
  • ¿Cómo agregar una nueva columna a la base de datos SQLite de Android?
  • SelectionArgs in ContentResolver.query (...) puede ser una subconsulta?
  • El grupo por consulta no funciona en android 2.1
  • Obtención de todos los registros de sqlite android
  • Cómo actualizar la base de datos Sqlite para una sola columna utilizando cláusula WHERE en android
  • Cómo contar el número de registros en sqlite en Android
  • Android sqlite - Cómo administrar un valor entero en la cláusula where
  • ¿Cómo acceder a la base de datos cuando se desarrolla en el teléfono Android?
  • Android: Fragmentos, SQLite y cargadores
  • Cómo insertar datos masivos en la base de datos sqlite de android utilizando ormlite eficientemente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.