【问题标题】:Toggle play pause ImageView inside listview在列表视图中切换播放暂停 ImageView
【发布时间】:2017-04-12 08:09:31
【问题描述】:

我有一个歌曲列表视图,每行都有播放和暂停按钮。 显然,我不能在我的列表视图中同时有两个暂停图标(两首播放歌曲)所以我需要先将它们全部重置为播放图标,然后将所选视图设置为暂停图标。 我怎样才能做到这一点?

这是我到目前为止所做的:

在模型类(Product)中:

 public boolean paused = true;

 private int PlayPauseId;
   public int getPlayPauseId(){
    return PlayPauseId;
 }
public void setPlayPauseId(int playPauseId) {
PlayPauseId = playPauseId;
}

适配器中:

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);
            }
        }
    });

我的 Activity 中的回调:

@Override
public void playPauseOnClick(int position) {
    final Product product = movieList.get(position);
    if (product.paused) {
        product.setPlayPauseId(R.drawable.ic_pause);
        product.paused=false;
    }else {
        product.setPlayPauseId(R.drawable.ic_play);
        product.paused = true;
    }
    this.adapter.notifyDataSetChanged();
}

【问题讨论】:

    标签: android listview adapter android-adapter


    【解决方案1】:

    您必须在适配器的getView() 方法中检查条件,如下所示:

        if (product.paused) {
                holder.playPauseHive.setImageResource(R.drawable.ic_play);
            }else {
                holder.playPauseHive.setImageResource(R.drawable.ic_pause);
            }
    

    【讨论】:

    • 感谢您的回复,这并不能解决我目前的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    相关资源
    最近更新 更多