如何取消选择“回收者视图”项目单击时所有其他人员的职位值?

时间:2018-07-23 14:17:57

标签: android android-layout android-recyclerview

我编写了以下代码,以更改recyclerview click中所选项目的背景:

 @Override
    public void onBindViewHolder(final ProductAdapter.CardViewHolder cardViewHolder, final int position) {

        final Product product = mProduct.get(position);

        cardViewHolder.pName.setText(product.getName());

        cardViewHolder.cardProduct.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                product.setSelected(!product.isSelected());
                cardViewHolder.view.setBackgroundColor(product.isSelected() ? getContext().getResources().getColor(R.color.blue) : Color.red);
            }
        });

    }

现在这可以了。当我单击“回收站视图”项目时,它会更改背景颜色,但是我想当我单击“回收站视图”中的任何特定项目时,必须取消选择所有其他项目并将其背景更改为红色。

我只想提供唱歌选择选项。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

使用变量来保留所选元素的索引。 例如:

rgb(35, 35, 35) == #232323

答案 1 :(得分:1)

尝试一下:

@Override
public void onBindViewHolder(ProductAdapter.CardViewHolder cardViewHolder, final int position) {

    Product product = mProduct.get(position);

    cardViewHolder.pName.setText(product.getName());

    if (product.isSelected()) {
        ardViewHolder.view.setBackgroundColor(context.getResources().getColor(R.color.blue));
    } else {
        ardViewHolder.view.setBackgroundColor(context.getResources().getColor(R.color.Red));
    }

    cardViewHolder.cardProduct.setTag(position);
    cardViewHolder.cardProduct.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int pos = (int) view.getTag();

            for (int i = 0; i < mProduct.size; i++) {
                Product product = mProduct.get(i);
                if (i != pos) {
                    product.setSelcted(false);
                } else {
                    product.setSelcted(true);
                }
            }
            notifyDataSetChanged();
        }
    });
}