如上图,有一个列表,可能很长,有些没显示出来。当点击某一项时该项显示“正在播放”。
由于安卓并不像网页样,把所有列表项都加载起,而只是把当前需要显示的加载起,所以这个处理方式跟网页、跟 WinForm 还不一样。
首先,我们需要给 Adapter 设置一个 int 成员,比如名叫 m_playingIndex
用以记录当前播放项。
何时给这个 m_playingIndex 赋值呢?就是在 getView 中的 view.setOnClickListener 中。
然后,在Adapter 的 getView 中根据 m_playingIndex 值显示不同的图标
这个是在滚动时触发的,也就是说为了保证滚动时也能够在正确的位置显示正确的按钮。
最后,需要一个立即响应事件处理
第二步说了,那个只是在滚动时触发,不滚动时不触发,也就无法更新界面,那么我们需要在点击了之后也更新。
那我们就需要 Adapter 设置一个事件了,在前面为 m_playingIndex 赋值后,就触发这个事件,这个事件交由 Activity 中处理(因为我们要用 m_listView,所以用事件跳出 Adapter)。
关于事件,可以参见本连载前面的文章。