事务后刷新RealmList-Android
我在android应用程序中使用Realm 在解析Json并从后端接收名为MessageList的RealmObject之后,我会执行以下操作事务后刷新RealmList-Android,android,database,realm,Android,Database,Realm,我在android应用程序中使用Realm 在解析Json并从后端接收名为MessageList的RealmObject之后,我会执行以下操作 if (messageList != null) { RealmList<Message> messages = messageList.getItems(); if (messages.size() > 0) { //Populate Recycler view UI
if (messageList != null) {
RealmList<Message> messages = messageList.getItems();
if (messages.size() > 0) {
//Populate Recycler view UI
displayMessages(messages);
//Start transaction
dbManager.copyToRealm(messages);
//End transaction....
}
}
public void displayMessages(RealmList<Message> messages) {
mAdapter = new EventsAdapter(getContext(), mPresenter, messages,
mPolentaApi.getCommunity());
mRecyclerView.setAdapter(mAdapter);
}
if(messageList!=null){
RealmList messages=messageList.getItems();
如果(messages.size()>0){
//填充回收器视图用户界面
显示消息(消息);
//启动事务
dbManager.copyToRealm(消息);
//结束交易。。。。
}
}
公共void显示消息(RealmList消息){
mAdapter=neweventsadapter(getContext(),mPresenter,messages,
mPolentaApi.getCommunity());
mRecyclerView.setAdapter(mAdapter);
}
消息也是一个真实的对象
我可以在我的应用程序的另一个区域修改消息,我需要这些更改反映在我的UI中
这是我的适配器:
public MessageAdapter(Context context, RealmList<Message> messages){
}
public MessageAdapter(上下文,RealmList消息){
}
我已尝试将notifyDataSetChanged()与适配器一起使用,但不起作用
我知道RealmBaseAdapter,但这仅适用于RealmResults
有什么想法吗?您需要将复制的消息添加到适配器中。Realm不修改原始副本,而是返回托管副本,其中将反映更改: 如果要显示自动更新的消息,必须执行以下操作:
List managedMessages=dbManager.copyToRealm(消息);
新的MessageAdapter(上下文、managedMessages);
我已经在这样做了,请查看上面的displayMessages方法。它看起来不是这样的。在执行copyToRealm()
之前,您正在调用displayMessage()
,这意味着您正在UI中显示未复制的值。