如何为listview的每个项目添加计时器?我希望这行在两秒钟后消失。该列表仅包含字符串
我目前在我的适配器中有一个处理程序 handler.postDelayed(new UpdateTimerTask(),2000);
此任务实现了一个Runnable,它应该从列表中删除一个项目并调用notifyDataSetChanged()。
但是我无法使用某个位置调用remove,因为在我的情况下,元素会不断添加到顶部。字符串也可以是相同的,因此我不能按名称删除。
任何想法??
答案 0 :(得分:1)
如果列表中的项目具有稳定的ID,您可以使用getItemId(int position)
循环访问适配器,然后删除具有正确ID的项目。否则,您需要跟踪在顶部添加了多少项以抵消正确的位置。因此,您可以在UpdateTimerTask中存储创建时列表中项目的总数。在列表触发时减去列表中的项目总数,您应该具有该项目的位置。
答案 1 :(得分:0)
你需要为列表项使用自定义模型,比如说StringItem,它既有一个String字段用于存储文本,另一个整数等于System.currentTimeMillis()
(在创建时)以跟踪他们的一生。
现在,在每隔100毫秒的小间隔内,根据System.currentTimeMillis()
的当前值和列表中每个项目的生命周期ID对列表进行清理