如图,我点击下面的item上面第二个item也会变色,我并没有滑动屏幕。以下是Adapter的代码:
package com.litemusic.dasong.ui.local.adapter; import android.content.Context; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.litemusic.dasong.R; import com.litemusic.dasong.base.OnItemClickListener; import com.litemusic.dasong.db.bean.Music; import com.litemusic.dasong.db.helper.MusicHelper; import java.util.List; /** * Created by dason on 2018/3/5 0005. */ public class LocalAdapter extends RecyclerView.Adapter<LocalAdapter.Holder> { private Context context; private List<Music> list; private OnItemClickListener itemClickListener; public LocalAdapter(Context context, List<Music> list){ this.context = context; this.list = list; } @Override public Holder onCreateViewHolder(ViewGroup parent, int viewType) { View root = LayoutInflater.from(context).inflate(R.layout.item_music,parent,false); return new Holder(root,itemClickListener); } @Override public void onBindViewHolder(Holder holder, int position) { holder.initView(position); } @Override public int getItemCount() { return list.size(); } public void setOnItemClickListener(OnItemClickListener listener){ if(itemClickListener == null){ itemClickListener = listener; } } class Holder extends RecyclerView.ViewHolder implements View.OnClickListener{ private TextView tvTitle; private TextView tvArtist; private TextView tvAlbum; private View vLine; private OnItemClickListener listener; public Holder(View itemView,OnItemClickListener listener) { super(itemView); this.listener = listener; itemView.setOnClickListener(this); } public void initView(int position){ tvTitle = $(R.id.tv_title); tvArtist = $(R.id.tv_artist); tvAlbum = $(R.id.tv_album); vLine = $(R.id.v_line); if(position == list.size()-1){ vLine.setVisibility(View.GONE); } setViewText(position); setTextColor(position); } public void setViewText(int position){ tvTitle.setText(list.get(position).getTitle()); tvArtist.setText(list.get(position).getArtist()); tvAlbum.setText(list.get(position).getAlbum()); } public void setTextColor(int position){ Music music = list.get(position); int color = Color.parseColor("#93e0ff"); if(music != null && music.getIsPlaying()){ tvTitle.setTextColor(color); tvArtist.setTextColor(color); tvAlbum.setTextColor(color); Log.d("ZLog","pos="+position); } } public <V extends View> V $(int id){ return (V)itemView.findViewById(id); } @Override public void onClick(View v) { int postion = getAdapterPosition(); listener.onItemClick(v,postion); for(Music m:list){ if(m.getIsPlaying()){ int index = list.indexOf(m); if(index != postion){ m.setIsPlaying(false); MusicHelper.update(m); } break; } } Music music = list.get(postion); if(music != null && !music.getIsPlaying()){ music.setIsPlaying(true); MusicHelper.update(music); } list.removeAll(list); list.addAll(MusicHelper.getAll()); notifyDataSetChanged(); } } }
相关分类