Ich baue eine Java Android App und ich benutze realm.io für meine Datenbank. Mein Problem ist, dass ich eine RealmList habe und mein Custom ListView Adapter nur RealmResults akzeptiert. Unten finden Sie den Code und weitere Details.Wie ändere ich eine RealmList in RealmResult?
Ich habe eine Chat-Klasse, die eine RealmList, RealmList, userId und eine ChatId hat.
public class Chat extends RealmObject{
private RealmList<Friend> participants;
private RealmList<Message> messages;
@PrimaryKey
private String chatId;
private String userId;
...
}
In meiner Tätigkeit, wo ich alle Nachrichten angezeigt Ich versuche, dass der Chat hat, kann ich chat.getMessages nennen() für diesen Chat als Realmlist alle Nachrichten zu bekommen, aber mein Listview-Adapter nimmt unten ein RealmResult weil es 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;
}
}
Hier erstreckt, wo ich es nennen alle
RealmList<Message> messages = chat.getMessages();
ListView messageList = (ListView) findViewById(R.id.message_list);
adapter = new MessageAdapter(this, messages, true);
messageList.setAdapter(adapter);
ich bin offen meine Realmlist zu einem RealmResult zu ändern, wenn möglich (ich ausgesehen haben nd es scheint nicht zu sein) oder Wenn ich eine RealmList im benutzerdefinierten Realm-Adapter verwenden kann, würde das eine andere Lösung sein. Alles, was mir helfen würde voranzukommen, wäre eine große Hilfe.
dank
dies tun , verwaltet es automatischesUpdate für Objekt in Relation? – BlackRabbit
Ja, tut es. Wenn sich das Objekt in Relation ändert, wird auch der changeListener ausgelöst. Und 'RealmBaseAdapter.notifyDataSetChanged' wird aufgerufen. – beeender
Was bedeutet 'T'? weil ich – Hunt