1

我该如何添加一个计时器listview的每个项目?我想要两秒钟后该行消失。该列表仅包含字符串如何在几秒钟后删除列表视图项目?

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

里面的getView方法。

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

但是我不能用位置调用remove,因为元素在我的情况中不断添加在顶部。字符串也可以是相同的,因此我不能通过名称删除。

任何想法??

+0

你可以发布你的代码? –

回答

0

您需要为列表项目使用自定义模型,例如StringItem,它具有用于存储文本的String字段和等于System.currentTimeMillis()(在创建时)以跟踪其生存期的整数。 现在,像每100毫秒的间隔小做了清理名单上的基础上,System.currentTimeMillis()电流值,并在列表中的每一个项目的生命周期ID

+0

辉煌。我用一个hashmap代替。 – sr09

1

如果在列表中的项目有稳定的IDS可以遍历该适配器使用getItemId(int position),然后使用正确的ID删除该项目。否则,您需要跟踪顶部添加了多少物品以抵消正确的位置。因此,您可以在UpdateTimerTask中存储创建时列表中项目的总数。当火灾发生时,从列表中的物品总数中减去,并且应该有物品的位置。