我正在使用RealmRecyclerViewAdapter管理我的UI列表。我想在集合中添加一个“待处理”项目,该项目将立即显示,同时将新项目发布到服务器。如果发生故障,我会将其从显示屏上移除。与聊天功能类似;我在点击发送时显示聊天,如果由于某种原因帖子失败,我可以删除它并提醒用户。
问题是,使用常规的RecyclerView适配器,我只需要在没有id的集合末尾添加一个项目,并根据需要将其删除。但由于RealmRecyclerViewAdapter使用托管的RealmResults,我无法添加没有id的新项。
有人可以建议一种方法来处理我用RealmRecyclerViewAdapter描述的情况吗?
答案 0 :(得分:1)
不知道您的数据模型是什么样的。很难给出具体的建议,但听起来你的所有ID都有,所以这样的事情应该有效:
1)必须可以生成ID离线。标准解决方案是GUID:https://en.wikipedia.org/wiki/Universally_unique_identifier 2)在模型类上有一个布尔值:" syncedWithServer"或类似的东西。然后,您可以将尚未同步的所有项目渲染为"待定"。
public class ChatEntry extends RealmObject {
@PrimaryKey
private String id = UUID.randomUUID().toString();
private String entry;
private boolean syncedWithServer;
}