如何使用Recycler Adapter取消选择所有项目

时间:2018-07-03 15:54:40

标签: android recycler-adapter

我正在尝试找出如何在单击用户项目时取消选择并显示新选择的项目。到目前为止,它选择了所有项目,但没有取消选择任何现有项目。

@Override
    public void onBindViewHolder(@NonNull final CustomViewHolder holder, final int position) {

        holder._title.setText(myModelList.get(position).getTitle());

        if(myModelList.get(position).getImageId() > 0) {

        holder._layout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setSelectedPosition(holder, position);
            }
        });
    }

    public void setSelectedPosition(CustomViewHolder holder, int position) {

        clearSelection(holder);

        for (int i = 0; i < myModelList.size(); i ++) {
            if(i == position) {
                holder._title.setTextColor(context.getResources().getColor(R.color.red));
                Log.v("TEXT colour", "selected item: " + myModelList.get(i).getTitle());
                myModelList.get(i).setChecked(true);
            }
        }

        notifyDataSetChanged();
    }

    public void clearSelection(CustomViewHolder holder) {
        for (int i = 0; i < myModelList.size(); i ++) {

            holder._title.setTextColor(context.getResources().getColor(R.color.black));
            Log.v("TEXT colour", "unselected at: " + myModelList.get(i).getTitle());
            myModelList.get(i).setChecked(false);
            notifyItemChanged(i);
        }
        notifyDataSetChanged();
    }

0 个答案:

没有答案