如图,我点击下面的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();
}
}
}
目前暂无任何回答
- 0 回答
- 0 关注
- 2523 浏览
添加回答
举报
0/150
提交
取消