在 android 中突出显示列表视图中的一项

Highlight one item of listview in android

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

移至答案...

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

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