Android删除图像视图中的背景属性
我在RecyclerView图像中添加了背景图像突出显示: 但当我单击图像时,也会显示上一个选定的图像高光。 如何解决这个问题。我的代码是Android删除图像视图中的背景属性,android,android-recyclerview,android-imageview,android-event,android-background,Android,Android Recyclerview,Android Imageview,Android Event,Android Background,我在RecyclerView图像中添加了背景图像突出显示: 但当我单击图像时,也会显示上一个选定的图像高光。 如何解决这个问题。我的代码是 holder.colorImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { holder.colorImage.setBackgroundResource(0
holder.colorImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.colorImage.setBackgroundResource(0);
for (int i = 0; i < colorId.size(); i++) {
holder.colorImage.setBackgroundResource(R.drawable.image_border);
}
}
});
holder.colorImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
holder.colorImage.setBackgroundResource(0);
对于(int i=0;i
我从问题中得到的信息是,一次将显示选定的一幅图像。因此,通过将选定的图像位置保存为全局,并通知适配器,可以很容易地实现。下面是一个例子
class LAdater extends RecyclerView.Adapter<LAdater.ViewHolder> {
int selectedPosition;
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item_color, null));
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (position == selectedPosition) {
holder.colorImage.setBackgroundResource(R.drawable.image_border);
} else {
holder.colorImage.setBackgroundResource(0);
}
}
@Override
public int getItemCount() {
return 9;
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
ImageView colorImage;
public ViewHolder(View itemView) {
super(itemView);
this.colorImage = (ImageView) itemView.findViewById(R.id.imageView);
colorImage.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.imageView) {
selectedPosition = getAdapterPosition();
notifyDataSetChanged();
}
}
}
}
类LAdater扩展了RecyclerView.Adapter{
int-selectedPosition;
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
返回新的ViewHolder(LayoutInflater.from(MainActivity.this).充气(R.layout.item_color,null));
}
@凌驾
公共无效onBindViewHolder(ViewHolder,int位置){
如果(位置==selectedPosition){
holder.colorImage.setBackgroundResource(R.drawable.image_边框);
}否则{
holder.colorImage.setBackgroundResource(0);
}
}
@凌驾
public int getItemCount(){
返回9;
}
类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
图像视图彩色图像;
公共视图持有者(视图项视图){
超级(项目视图);
this.colorImage=(ImageView)itemView.findViewById(R.id.ImageView);
colorImage.setOnClickListener(此);
}
@凌驾
公共void onClick(视图v){
if(v.getId()==R.id.imageView){
selectedPosition=getAdapterPosition();
notifyDataSetChanged();
}
}
}
}
这只是一个示例,请根据需要修改它。什么是colorId?@ADM这是包含颜色id的数组列表