【问题标题】:How can I remove listview items after a few seconds?几秒钟后如何删除列表视图项目?
【发布时间】:2014-02-13 23:20:44
【问题描述】:

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

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

在 getView 方法中。

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

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

有什么想法吗??

【问题讨论】:

  • 你能发布你的代码吗??

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您需要为您的列表项使用自定义模型,例如 StringItem,它有一个字符串字段来存储文本和一个等于 System.currentTimeMillis()(在创建时)的整数来跟踪它们的生命周期. 现在,每隔 100 毫秒,根据 System.currentTimeMillis() 的当前值和列表中每个项目的生命周期 ID 对列表进行清理

    【讨论】:

    • 太棒了。我改用哈希图。
    猜你喜欢
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多