Cómo cambiar una RealmList a RealmResult?

Estoy construyendo una aplicación Java android y estoy usando realm.io para mi base de datos. Mi problema es que tengo una RealmList y mi adaptador de ListView personalizado sólo acepta RealmResults. A continuación se muestra el código y más detalles.

Tengo una clase Chat que tiene una RealmList, RealmList, userId y un chatId.

public class Chat extends RealmObject{ private RealmList<Friend> participants; private RealmList<Message> messages; @PrimaryKey private String chatId; private String userId; ... } 

En mi actividad en la que estoy tratando de mostrar todos los mensajes que tiene el chat, puedo llamar a chat.getMessages () para obtener todos los mensajes de este chat como RealmList, pero mi adaptador ListView a continuación toma un RealmResult porque se extiende RealmBaseAdapter

 public class MessageAdapter extends RealmBaseAdapter<Message> implements ListAdapter { private String TAG = getClass().getSimpleName(); public MessageAdapter(Context context, RealmResults<Message> realmResults, boolean automaticUpdate) { super(context, realmResults, automaticUpdate); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate(R.layout.listitem_message, parent, false); } Message message = getRealmResults().get(position); if (message != null) { ((TextView) convertView.findViewById(R.id.message_content)).setText(message.getContent()); DateFormat dateFormat = new SimpleDateFormat("HH:mm", Locale.CANADA); ((TextView) convertView.findViewById(R.id.message_time)).setText(dateFormat.format(message.getTimestamp())); } return convertView; } public RealmResults<Message> getRealmResults() { return realmResults; } } 

Aquí es donde lo llamo todo

 RealmList<Message> messages = chat.getMessages(); ListView messageList = (ListView) findViewById(R.id.message_list); adapter = new MessageAdapter(this, messages, true); messageList.setAdapter(adapter); 

Estoy abierto a cambiar mi RealmList a un RealmResult si es posible (he mirado y no parece ser) o si puedo utilizar un RealmList en el adaptador de reino personalizado que otra solución. Cualquier cosa que me ayude a seguir adelante sería de gran ayuda.

Gracias

2 Solutions collect form web for “Cómo cambiar una RealmList a RealmResult?”

Solo haz

 chat.getMessages().where().findAll() 

(Respuesta de aquí )

RealmBaseAdapter tiene una implementación muy sencilla.

Así que en el caso, puede pasar el Chat específico a usted adaptador, y la sobrecarga a continuación los métodos:

 @Override public int getCount() { if (realmResults == null || realmResults.size() == 0) { return 0; } return realmResults.first().getMessages().size(); } @Override public T getItem(int i) { if (realmResults == null || realmResults.size() == 0) { return null; } return realmResults.first().getMessages().get(i); } @Override public View getView(int position, View convertView, ViewGroup parent) { // You message view here } 
  • Uso de Realm.io para almacenar valores monetarios
  • Clase de datos Kotlin de RealmObject
  • Cómo crear un nuevo RealmObject que contiene una RealmList
  • Android: Realm.getInstance (context) devuelve una instancia de dominio ya cerrada
  • Cómo cerrar el reino abierto por Realm.getDefaultInstance?
  • Realm ORM: cómo tratar con Maps?
  • Compruebe dos campos con la base de datos Realm
  • Crear un objeto autónomo del reino en android
  • Requisito de dominio con dos condiciones al mismo tiempo
  • Cómo configurar el incremento automático de clave principal en el reino de Android
  • ¿RealmBaseAdapter se ha eliminado de realm-java?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.