gpt4 book ai didi

android - Activity.recreate() 复制列表

转载 作者:行者123 更新时间:2023-11-29 01:30:39 25 4
gpt4 key购买 nike

我正在开发的应用程序正在从互联网加载新闻。在主要的 Activity 上,我有一个包含主题选择的 RecyclerView。所有内容都在 onResume() 方法中加载和更新。这样做的原因是,每当我回到此 Activity 时,我想更新新闻数量和所有此 Activity 的内容。我还有一个偏好 Activity。这是非常标准的。

在我的 Activity 中,我有一个监听器:

SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
recreate();
}
}

每当我进入“设置”菜单并返回时,我的 RecyclerView 的值都发生了变化,但我也得到了列表中每个项目的副本。

但是在我的 onResume() 方法中我有这些代码行:

sa.removeAllItemsFromList();
sa.notifyDataSetChanged();

sa.removeAllItemsFromList() 是我执行此操作的方法:siteList.removeAll(siteList);。非常简单直接。所以问题是:为什么我会得到一个副本,我该如何修复它?

最佳答案

why do I get a duplicate ?

因为您正在 onResume() 中调用列表创建登录。当你向前和向后调用 onResume() 方法时,将创建列表数据并添加到列表中

how do I fix it?

使用HashSet代替ArrayList

HashSet 仅包含唯一元素。

Use of HashSet

关于android - Activity.recreate() 复制列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com