我正在处理的应用是从互联网上加载新闻。在主impl<K, V> Default for ConcurrentDictionary<K, V>
where K: std::cmp::Eq + std::hash::Hash
上,我有一个Activity
,其中包含主题选择。所有内容都在RecyclerView
方法中加载和更新。原因是每当我回到onResume()
时,我想更新新闻的数量和所有这些活动的内容。我也有一个偏好Activity
。这很标准。
在我的活动中,我有Activity
:
listener
每当我进入“设置”菜单并返回时,我的SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
recreate();
}
}
值已更改,但我也会获得列表中每个项目的副本。
然而,在我的RecyclerView
方法中,我有以下几行代码:
onResume()
sa.removeAllItemsFromList();
sa.notifyDataSetChanged();
是我执行此操作的方法:sa.removeAllItemsFromList()
。非常简单直接。所以问题是:为什么我会得到重复,我该如何解决?
答案 0 :(得分:1)
为什么我会得到副本?
因为您在.pkg
中呼叫列表创建登录。当您前进和后退onResume()
方法调用时,这将创建列表数据并添加到列表
我该如何解决?
使用onResume()
代替HashSet
HashSet仅包含唯一元素。