我在我的Android应用程序中使用greendao,并且需要刷新列表视图中的某个项目。
我有一个与“出口”有一对多关系的实体“活动”
为了在添加新的“导出”时更新“活动”,我按http://greenrobot.org/greendao/documentation/relations/#Resolving_and_Updating_To-Many_Relations
中的描述进行操作Exports ex = new Exports();
ex.setActivityId(activityEntry.getId());
//DOING something...
exportsDao.insert(ex);
List<Exports> exportList = activityEntry.getExportsList();
exportList.add(ex);
然而,这给了我java.util.AbstractList.add(AbstractList.java:404)的java.lang.UnsupportedOperationException
我做错了什么?
答案 0 :(得分:3)
刚刚遇到同样的问题 - 你现在可能已经解决了这个问题,但这可以作为最新用户的参考(截至2016年4月25日)
最近修复了错误修正(今年年初),如图所示
https://github.com/greenrobot/greenDAO/issues/287 https://github.com/greenrobot/greenDAO/pull/288
从上述情况来看,如果有人遇到同样的问题,问题很可能就是下列问题之一
或者你就像我一样从github中拉出greendao项目,并且无意识地从README文件中复制了gradle依赖版本 - 看起来如下所示
scales
与官方网站上的gradle依赖关系不同。
compile 'de.greenrobot:greendao:2.1.0'
答案 1 :(得分:0)
从您引用的页面中,您已经完成了无序的步骤。按照此顺序中的步骤操作,看看它是否解决了问题。
这是如何插入属于to-many的新实体 关系:
- 获取to-many Java List(之前必须完成此操作) 坚持新实体,因为我们不知道我们是否得到了缓存 为了新的结果。像这样,我们知道它现在被缓存了。)
- 创建一个新的实体对象(多方面)
- 将新实体的外国财产设置为目标实体
- 使用insert
保留新对象- 将新对象添加到to-many Java List
醇>