在recycleview onclick项目中如何更改其他项目的颜色

时间:2017-06-28 09:18:56

标签: android android-recyclerview

我正在尝试创建一个测验应用。当单击recycleview中的一个项目时,无法弄清楚如何更改其他项目的颜色。单击选项2但正确的选项是选项1时,它应显示如下图所示。解决方案请 enter image description here

1 个答案:

答案 0 :(得分:1)

为可绘制文件夹中的选定和未选定按钮创建两个可绘制文件。

创建一个模型类,如下所示:

public class ModelDemo
{
   //your declaration

boolean isClicked;

  public void setIsClicked(boolean value) {
            this.value = value ;
        }

public boolean isClicked() {
           return value;
        }
}

//现在创建一个类型为ArrayList<ModelDemo>的类型的arraylist,其中包含您需要的其他值以使您的Recyclerview渗透。最初将isClicked设置为false。按以下方式为您的recylerview充气

 public void onBindViewHolder(final Holder holder, final int position) {

          final ModelDemo modelDemo= arrayZipModel.get(position);

      //here write your code to inflate the data for button text




     if (modelDemo.isClicked())
               holder.yourButton.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.selected));
            else
                  holder.yourButton.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.unselected));




            holder.yourButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   if(modelDemo.isClicked())
                      modelDemo.setIsClicked(false)
                  else
                     modelDemo.setIsClicked(true)

                   notifyDataSetChanged();

                }
            });



        }