【问题标题】:Highlight one item of listview in android在android中突出显示一项listview
【发布时间】:2015-01-05 17:32:02
【问题描述】:

我正在构建一个媒体播放器。我有一个播放列表,它是一个带有自定义适配器的列表视图的活动。此列表视图中的项目包含 2 个字段:。我想让图像(正在播放)仅对当前正在播放的歌曲(在服务中)可见。此外,当歌曲因任何原因发生变化时,即使播放列表活动打开,这也应该动态变化。

【问题讨论】:

  • 您可以修改您的自定义ListAdapter 并覆盖getView 方法以获取当前视图的位置。然后使用 view.setBackgroundColor 更改背景颜色
  • 是的,sufiyan 的方法是正确的。要添加的一件事是,当歌曲更改时,您可以在适配器上调用 notifyDataSetChanged 以强制它重新绘制视图以显示选择更改。
  • 但是如果有很多歌曲只是为了突出一首歌曲,那不是处理器密集型的吗?另外,由于歌曲更改发生在服务中并且这是一项活动,我将如何从服务中调用它?我不会有活动的实例。当活动不活跃时会发生什么? @布鲁斯

标签: java android listview android-listview imageview


【解决方案1】:

转到答案...

是的,sufiyan 的方法是正确的。要添加的一件事是,当歌曲更改时,您可以在适配器上调用 notifyDataSetChanged 以强制它重绘视图以显示选择更改。

绘制 ListView 的最大开销是构建新的项目视图,但如果您的适配器的 getView 使用 'convertView' 参数,那么您可以节省这笔费用。为了通知活动,我建议从您的服务发送广播。在您的活动中,在 onResume 中注册一个接收器,并在 onPause 中取消注册它。然后在 onResume 中确保您刷新(以防在您的活动暂停时歌曲发生变化。

【讨论】:

  • 非常感谢!像魅力一样工作!
猜你喜欢
  • 1970-01-01
  • 2012-06-24
  • 2013-11-18
  • 2012-01-05
  • 2011-08-16
  • 2013-02-04
  • 1970-01-01
  • 2017-09-24
  • 1970-01-01
相关资源
最近更新 更多