package com.dingmouren.dingdingmusic.ui.localmusic; import android.content.Context; import android.support.v7.widget.CardView; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.dingmouren.dingdingmusic.MyApplication; import com.dingmouren.dingdingmusic.R; import com.dingmouren.dingdingmusic.bean.MusicBean; import java.util.List; /** * Created by dingmouren on 2017/1/17. */ public class LocalMusicAdapter extends RecyclerView.Adapter<LocalMusicAdapter.ViewHolder> { private static final String TAG = LocalMusicAdapter.class.getName(); private List<MusicBean> mList; private Context mContext; private OnItemClickListener onItemClickListener; private MusicBean playingBean;//正在播放的歌曲 public LocalMusicAdapter(Context context) { this.mContext = context; } public void setList(List<MusicBean> list) { this.mList = list; } public void setOnItemClickListener(OnItemClickListener listener){ this.onItemClickListener = listener; } public void showPlaying(MusicBean bean){ this.playingBean = bean; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_local_music,parent,false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.bindData(mList.get(position),playingBean); holder.relateive_local.setOnClickListener((view -> { if (null != onItemClickListener){ onItemClickListener.onItemClickListener(holder.relateive_local,position); } })); } @Override public int getItemCount() { return mList==null ? 0 : mList.size(); } static class ViewHolder extends RecyclerView.ViewHolder { RelativeLayout relateive_local; TextView songName; TextView singer; ImageView fab_isPlay; public ViewHolder(View itemView) { super(itemView); relateive_local = (RelativeLayout) itemView.findViewById(R.id.relateive_local); songName = (TextView) itemView.findViewById(R.id.tv_song_name); singer = (TextView) itemView.findViewById(R.id.tv_singer); fab_isPlay = (ImageView) itemView.findViewById(R.id.fab_isPlay); } private void bindData(MusicBean bean,MusicBean playingBean){ if (null != bean){ songName.setText(bean.getSongname()); singer.setText(bean.getSingername()); } if (null != bean && null != playingBean) { if (!bean.getSongname().equals(playingBean.getSongname()) && bean.getSongid() !=playingBean.getSongid()) {//先设置没有播放的歌曲的样式,随后设置正在播放歌曲的样式,有点覆盖的意思 fab_isPlay.setVisibility(View.GONE); }else if (bean.getSongname().equals(playingBean.getSongname()) && bean.getSingername().equals(playingBean.getSingername())){ fab_isPlay.setVisibility(View.VISIBLE); Glide.with(MyApplication.mContext).load(R.mipmap.playing).asGif().diskCacheStrategy(DiskCacheStrategy.NONE).into(fab_isPlay); } } } } public interface OnItemClickListener{ void onItemClickListener(View view,int position); } }