【发布时间】:2017-04-11 15:25:25
【问题描述】:
我有一个歌曲列表视图,每行都有播放和暂停按钮。 我的列表视图中不能有两个暂停图标(两首播放歌曲)所以我需要先将它们全部重置为播放图标,然后将所选视图设置为暂停图标.. 我怎样才能做到这一点 ?或者您能为此提供更好的解决方案吗?
这是我的代码:
在模型类(产品)中:
public int currentPosition= -1;
在适配器中:
public interface PlayPauseClick {
void playPauseOnClick(int position);
}
private PlayPauseClick callback;
public void setPlayPauseClickListener(PlayPauseClick listener) {
this.callback = listener;
}
.
.
.
holder.playPauseHive.setImageResource(product.getPlayPauseId());
holder.playPauseHive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callback != null) {
callback.playPauseOnClick(position);
if (position == product.currentPosition) {
product.setPlayPauseId(R.drawable.ic_pause);
//set the image to pause icon
}else{
//set the image to play icon
product.setPlayPauseId(R.drawable.ic_play);
}
notifyDataSetChanged();
}
}
});
我的 Activity 中的回调:
@Override
public void playPauseOnClick(int position) {
final Product product = songList.get(position);
if(product.currentPosition == position){
product.currentPosition = -1; //pause the currently playing item
}else{
product.currentPosition = position; //play the item
}
this.adapter.notifyDataSetChanged();
}
【问题讨论】:
标签: android listview adapter custom-adapter