离开并返回活动后,Listview显示多个项目

时间:2013-09-28 02:27:00

标签: java listview android-asynctask duplicates adapter

我目前点击MainActivity中的一个按钮,它将我带到HotSpotsActivity,按字母顺序显示运动队名称列表。按下Back返回MainActivity(即使我回到主页并恢复应用程序),HotSpotsActivity会重新下载数据并将其显示在原始项目下方,因此我将按如下方式进行操作:A,B,C,D,E组,A队,B队,C队,D队,E。

如果我备份并重试,它会显示第3个副本,然后是第4个副本,依此类推。

令人困惑的是,我已经有一个相关的活动(EventsActivity)没有问题,并且在我恢复EventsActivity然后重新下载数据时有一个清晰的视图。所有与下载数据相关的代码几乎都是相同的,有人可以告诉我我缺少的东西吗?

我已经包含了EventsActivity和相关的EventsAdapter(两者都有效),以及HotSpotsActivity和相关的HotSpotsAdapter,它们都不起作用。

工作: http://pastebin.com/mG5FVnbx http://pastebin.com/aXEw9T8S

不要工作: http://pastebin.com/FNPKyisB http://pastebin.com/F00w4gUn

2 个答案:

答案 0 :(得分:2)

你在热点的arraylist是静态的。这意味着它不断存在,你永远不会调用clear()。所以当你在json解析中调用add()时,你只是一遍又一遍地追加。看起来事件中的其他数组不是静态的,因此每次创建活动时它都是一个新数组。 希望这会有所帮助:)

答案 1 :(得分:0)

您最有可能在活动开始时添加项目,即使它们已经在列表视图中。检查你的代码。