ListActivity Custom BaseAdapter;仅在重新排序原始列表时复制列表

时间:2012-08-17 05:19:33

标签: java android duplicates baseadapter listactivity

我正在使用ListActivity和自定义BaseAdapter。实现的clear()方法仅清除列表onResume(),但如果我重新填充适配器并通知数据已更改,则会保持清晰。

我不相信任何代码是必要的,但是......

ArrayList<String> thisWorks = DatabaseMethods.retrieveData();
populateAdapter();

---------------------------
ArrayList<String> thisAddsSameDataWithEveryIntentCall = sortByDate(DatabaseMethods.retrieveData());
populateAdapter();

我的理解是它很可能与内存地址更改有关。但是,SQLite给我的数据不是有序的,必须每次都重新排序,因为我想要连续的日期。

我认为通过对数据进行排序,每次使用不同的内存地址,而恢复活动时,它会查找旧地址。

在调用活动时防止重复数据的提示?


编辑

上面的ArrayList thisWorks将包含以下数据:

  • 2013年1月9日
  • 2012年8月22日
  • 2012年7月26日

如果我调用此活动,这些项目将填充CustomAdapter。调用活动时,再次调用Database函数(因为用户可能已添加数据),并且如果它没有更改,则使用相同的列表填充CustomAdapter ....一切都很好< / p>

上面的ArrayList thisAddsSameDataWithEveryIntentCall将包含以下数据在分类之前

  • 2013年1月9日
  • 2012年8月22日
  • 2012年7月26日

排序后:

  • 2012年7月26日
  • 2012年8月22日
  • 2013年1月9日

如果我调用此活动,这些项目通常是第一次填充CustomAdapter。点击后退按钮,从堆栈中删除Activity。单击按钮再次调用Activity:

  • 2012年7月26日
  • 2012年8月22日
  • 2013年1月9日
  • 2012年7月26日
  • 2012年8月22日
  • 2013年1月9日

重复。

某些东西没有被破坏。在选择日期选择后我使用了略微修改的列表版本,并且因为这次 NOT 对数据进行排序,所以没有数据重复。

0 个答案:

没有答案