Activity.recreate()复制列表

时间:2015-07-12 18:27:31

标签: android sharedpreferences android-recyclerview

我正在处理的应用是从互联网上加载新闻。在主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()。非常简单直接。所以问题是:为什么我会得到重复,我该如何解决?

1 个答案:

答案 0 :(得分:1)

  

为什么我会得到副本?

因为您在.pkg中呼叫列表创建登录。当您前进和后退onResume()方法调用时,这将创建列表数据并添加到列表

  

我该如何解决?

使用onResume()代替HashSet

HashSet仅包含唯一元素。

Use of HashSet