如何在几秒钟后删除listview项目?

时间:2014-02-13 23:20:45

标签: android listview android-listview android-adapter android-adapterview

如何为listview的每个项目添加计时器?我希望这行在两秒钟后消失。该列表仅包含字符串

我目前在我的适配器中有一个处理程序     handler.postDelayed(new UpdateTimerTask(),2000);

在getView方法中。

此任务实现了一个Runnable,它应该从列表中删除一个项目并调用notifyDataSetChanged()。

但是我无法使用某个位置调用remove,因为在我的情况下,元素会不断添加到顶部。字符串也可以是相同的,因此我不能按名称删除。

任何想法??

2 个答案:

答案 0 :(得分:1)

如果列表中的项目具有稳定的ID,您可以使用getItemId(int position)循环访问适配器,然后删除具有正确ID的项目。否则,您需要跟踪在顶部添加了多少项以抵消正确的位置。因此,您可以在UpdateTimerTask中存储创建时列表中项目的总数。在列表触发时减去列表中的项目总数,您应该具有该项目的位置。

答案 1 :(得分:0)

你需要为列表项使用自定义模型,比如说StringItem,它既有一个String字段用于存储文本,另一个整数等于System.currentTimeMillis()(在创建时)以跟踪他们的一生。 现在,在每隔100毫秒的小间隔内,根据System.currentTimeMillis()的当前值和列表中每个项目的生命周期ID对列表进行清理