0

I want to highlight the selected items in recyclerview. I can count the number of items selected. I want the highlighting as

image.....

I have tried this code.

     recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {
            if (isMultiSelect) {
                multi_select(position);
                selectedPositon = position;
            } else{
                Toast.makeText(getApplicationContext(), "Details Page", Toast.LENGTH_SHORT).show();
                 }

            if (selectedPositon == position) {
                view.setBackgroundColor(Color.parseColor("#e2a49e"));
            } else {
                view.setBackgroundColor(Color.parseColor("#f5f5f5"));
            }
        }

        @Override
        public void onItemLongClick(View view, int position) {
            if (!isMultiSelect) {
                selected_list = new ArrayList<AlertListItem>();
                isMultiSelect = true;
                selectedPositon = position;
                if (mActionMode == null) {
                    mActionMode = startActionMode(mActionModeCallback);
                }
            }

            if (selectedPositon == position) {
                view.setBackgroundColor(Color.parseColor("#e2a49e"));
            } else {
                view.setBackgroundColor(Color.parseColor("#f5f5f5"));
            }
            multi_select(position);
        }
    }));
}

can someone help me out.

Goku
  • 9,102
  • 8
  • 50
  • 81
konda rahul
  • 141
  • 1
  • 1
  • 11

2 Answers2

0
           if (btn.getBackground().getConstantState().equals(itemView.getResources().getDrawable(R.drawable.understand_clicked).getConstantState())) {
                btn.setBackground(itemView.getResources().getDrawable(R.drawable.understand_not_clicked));          

         } else {
                btn.setBackground(itemView.getResources().getDrawable(R.drawable.understand_clicked));                   
            }

Do this code in a custom recyclerviewadapter, in View holder class. Use getConstantState for current state of image. You can also change color of selected raw.

Nimisha V
  • 461
  • 4
  • 12
0

you can use use below code

public void onBindViewHolder(final ViewHolder holder, final int position) {
        holder.textView.setText(array[position]);

        holder.row_linearlayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                index=position;
                notifyDataSetChanged();
            }
        });
        if(index==position){
            holder.layout.setBackgroundColor(Color.parseColor("#ff8569"));
            holder.textView.setTextColor(Color.parseColor("#ffffff"));
        }
        else
        {
            holder.layout.setBackgroundColor(Color.parseColor("#ffffff"));
            holder.textView.setTextColor(Color.parseColor("#000000"));
        }

    }

HolderClass

public class ViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        LinearLayout layout;
        RecyclerView recyclerView;

        public ViewHolder(final View itemView) {
            super(itemView);
            textView=(TextView)itemView.findViewById(R.id.textView1);
            layout=(LinearLayout)itemView.findViewById(R.id.layouot_linear);
            recyclerView=(RecyclerView)itemView.findViewById(R.id.recycler);
        }
    }
Vinesh Chauhan
  • 1,288
  • 11
  • 27