这种情况确实有所不同,我想做到,但我找不到解决方法。我的情况是这样的:
我有一个ArrayList
,而这个ArrayList
总是用新的更新。请这样想。
LIST ONE是我的目标列表。我在此列表中有这些项目:
A 乙 C
我在首次启动时两次保存了此列表:list_old_one
-list_new_one
几分钟后,出现了带有旧物品的新物品。
A 乙 C D
我还要保存此列表:list_new_one
我想做这个。如果list_one_now
中不存在 C ,我只想显示此内容,并且我想删除所有其他项目,而只显示 C ,而不用 D
我对equal
和removeAll
部分感到厌倦,还对 D 项感到厌倦,因为它不相等。
我的ArrayList:
TinyDB tinydb = new TinyDB(getApplicationContext());
//Adding current list to new one
tinydb.remove("list_new_one");
tinydb.putListString("list_new_one", all_list);
ArrayList<String> list_old = new ArrayList<>(tinydb.getListString("list_old_one"));
ArrayList<String> list_new = new ArrayList<>(tinydb.getListString("list_new_one"));
list_old.removeAll(list_new);
if (list_new.size() != 0) {
//Adding results to database
DBRecentlyHelper dbRecentlyHelper = new DBRecentlyHelper(getApplicationContext());
dbRecentlyHelper.RecentlyADD(list_old, current_user);
dbRecentlyHelper.close();
//Updating old list
tinydb.remove("list_old_one");
tinydb.putListString("list_old_one", all_list);
}else{
//Updating old list
tinydb.remove("list_old_one");
tinydb.putListString("list_old_one", all_list);
}
我真的要在一个星期内看病,但仍然得到错误的结果。
如果有人有想法,我会很高兴的。 非常感谢。
答案 0 :(得分:0)
您得到错误的列表,因为您将列表与列表相等。这样做吧!
创建一个类似SQLite DBRecentlyHelper
的SQLite。例如:DBOldListItems
和DBOldListItems
将我所说的所有项目都保存到新数据库中,并将项目与项目相等。
旧项目:
A - B - C
新项目:
A - B - C - D
示例:
if(!olditems.get(i).item.equals(newitems.get(i)){
olditems.get(i).item
}
如果A项与newitems数组不相等,则将得到结果。获得结果之后,您可以更新旧项目,并且可以做更多,更多,更多。
如果您听不懂任何内容,请与我联系。也许我的英语听不懂:)
答案 1 :(得分:0)
成功的答案是好方法,但也很难。因为您不需要获取物品。 Android OS始终可以等于短文本或长文本。
替换:
{ user { investor { details { photos { id key }}}}}
收件人:
list_old.removeAll(list_new);
您将获得正确的结果。