单击时更改RecyclerView项目的背景图像

时间:2017-05-05 05:49:38

标签: android textview

我有一个RecylerView,它包含一个textView作为单独的项目。根据要求,在查看当前图像后,将在点击时更改textView的背景图像。

简单来说:

onClick textView 电视 - >检查textview的背景图片电视 - >检查电视的背景图片是 a ,然后将其设为 b ,反之亦然

请在下面找到我的代码:

 viewHolder.addRemove.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            if(viewHolder.clicked==0)
                            {

                                viewHolder.addRemove.setBackgroundResource(R.mipmap.added);
                                viewHolder.clicked=1;
                                groupSlcArray.add(model.getName().trim());
                                Log.d("groupArr", Arrays.toString(groupSlcArray.toArray()));

                            }
                            else
                            {

                                viewHolder.addRemove.setBackgroundResource(R.mipmap.addslcgroup);
                                viewHolder.clicked=0;
                                groupSlcArray.remove(model.getName().trim());
                                Log.d("groupArr", Arrays.toString(groupSlcArray.toArray()));
                            }

                        }
                    });

无论如何我无法找到textView的后台资源进行检查。需要你的帮助。这个问题对某些人来说似乎太简单了。因此,请在Outvoting之前尝试提供解决方案,因为我已经尝试了所有可能的解决方案。谢谢提前

2 个答案:

答案 0 :(得分:0)

请尝试以下代码:

holder.textview.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           if (holder.textview.getBackground() == getResources().getDrawable(R.drawable.a)){
                holder.textview.setBackground(R.drawable.b);
           }
           else{
                holder.textview.setBackground(R.drawable.a);
           }
        }
    });

答案 1 :(得分:0)

你必须了解getView。 有时如果您在ListView中滚动,这不是一个精确的颜色

所以我想建议以下方式:

1。在getView

上添加代码
if (groupSlcArray.contain(odel.getName().trim())) {
        viewHolder.addRemove.setBackgroundResource(R.mipmap.addslcgroup);
    } else {
        viewHolder.addRemove.setBackgroundResource(R.mipmap.added);
    }

2。更改OnClickListener事件代码

viewHolder.addRemove.setOnClickListener(new View.OnClickListener()

{
    @Override
    public void onClick (View v){
    if (groupSlcArray.contain(odel.getName().trim())) {
        viewHolder.addRemove.setBackgroundResource(R.mipmap.addslcgroup);
        groupSlcArray.remove(model.getName().trim());
        Log.d("groupArr", Arrays.toString(groupSlcArray.toArray()));

    } else {
        viewHolder.addRemove.setBackgroundResource(R.mipmap.added);
        groupSlcArray.add(model.getName().trim());
        Log.d("groupArr", Arrays.toString(groupSlcArray.toArray()));
    }
  }
});