当我点击项目时,我有 50 个 recyclerview 项目现在是绿色的 它变成红色,当我再次点击时它又变回绿色下面是如何实现它的代码
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ItemViewHolder) {
((ItemViewHolder)holder).Title.setText(position+1+"");
((ItemViewHolder)holder).imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (status==0){
status=1;
((ItemViewHolder) holder).imageView.setImageResource(R.drawable.ic_social_person);//red icon
}else {
status=0;
((ItemViewHolder) holder).imageView.setImageResource(R.drawable.ic_social_person_green);//green icon
}
}
});
} else {
((progressHolder) holder).progressBar.setIndeterminate(true);
}
}
现在的问题是,当我点击第一个项目时它变成红色图标但是当我点击第二个项目时它没有变成红色图标当我再次点击它时它变成红色图标如何解决这个问题
最佳答案
public SparseBooleanArray array = new SparseBooleanArray();
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof ItemViewHolder) {
((ItemViewHolder)holder).Title.setText(position+1+"");
((ItemViewHolder)holder).imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean status = array.get(position);
if (!status){
array.put(position,!status);
((ItemViewHolder) holder).imageView.setImageResource(R.drawable.ic_social_person);//red icon
}else {
array.put(position,!status);
((ItemViewHolder) holder).imageView.setImageResource(R.drawable.ic_social_person_green);//green icon
}
}
});
} else {
((progressHolder) holder).progressBar.setIndeterminate(true);
}
}
关于android - 将交替的 onClickListener 设置为 Recyclerview 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34471827/