Java 在RecyclerView中为以前的CardView重置颜色

Java 在RecyclerView中为以前的CardView重置颜色,java,android,android-recyclerview,android-cardview,Java,Android,Android Recyclerview,Android Cardview,我有一个onClick方法,可以将当前的cardwiew设置为一种颜色,但是之前调用了onClick方法的所有cardwiews也会更改颜色。我要做的是将所有其他cardwiews重置为其原始颜色,并将当前cardwiew设置为不同的颜色 这是我的代码: public ViewHolder(View view) { super(view); cardView = (CardView) view.findViewById(R.id.card_view); view.setO

我有一个
onClick
方法,可以将当前的
cardwiew
设置为一种颜色,但是之前调用了
onClick
方法的所有
cardwiews
也会更改颜色。我要做的是将所有其他
cardwiews
重置为其原始颜色,并将当前
cardwiew
设置为不同的颜色

这是我的代码:

public ViewHolder(View view) {
    super(view);
    cardView = (CardView) view.findViewById(R.id.card_view);
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            cardView.setBackgroundColor(Color.RED);
        }
    });
}
因此,上面的方法为
cardwiew
设置了背景色,这很好,但我希望其他人恢复到原来的颜色。我该怎么做呢



谢谢

您使用简单列表视图吗?如果是这样,那就不是正确的行为。为什么不设置list.setonimclick,您可以在其中设置适配器的新颜色并调用onDataSetChanged?

您使用简单列表视图吗?如果是这样,那就不是正确的行为。为什么不设置list.setOnItemClick,您可以在其中将新颜色设置到适配器并调用onDataSetChanged?

显然,您应该在view或viewholder中“存储”状态,但在基线数据中我不知道我的事情与每个cardview类似,这就是问题所在-我编写它的方式是,它只适用于一个cardview
setBackgroundColor(Color.RED)
为什么在
recyclerview
中使用
cardview
会有什么问题?它可以工作,但之前设置的所有其他
cardview
都是相同的颜色没有什么问题…设置不基于底层数据的东西(如背景色)显然是…你应该“存储”在view或viewholder中声明,但在参考底图数据中,我不认为我的东西与每个cardview类似,这就是问题所在-我编写它的方式是,它只适用于一个cardview
setBackgroundColor(Color.RED)
为什么在
回收视图
中使用
cardview
会有什么问题?它可以工作,但之前设置的所有其他
cardview
都是相同的颜色没有什么问题…设置内容(如背景色)不基于底图数据是…抱歉,这是一个回收视图。我只需要一些帮助来重置cardview的其他颜色,所选颜色除外。您可以通过更新适配器的项目来完成。如何?我在这里谈论的是CARDVIEW@Overridepublic void onClick(视图v){cardwiew=(cardwiew)view.findViewById(R.id.card_视图);cardView.setBackgroundColor(Color.RED);}天哪,我为什么还要麻烦在这里发帖。你甚至还没有回答这个问题。你的代码已经在我的OP中了-对不起,我认为你不明白我的问题-没关系,对不起,这是一个回收视图。我只是需要一些帮助来重置cardview的其他颜色,除了所选的颜色。你可以通过更新适配器的项目来完成。怎么做?我是说ab请在此处列出CARDVIEW@Overridepublic void onClick(视图v){cardwiew=(cardwiew)View.findviewbyd(R.id.card_视图);cardwiew.setBackgroundColor(Color.RED);}天哪,我为什么还要费心在这里发帖。你甚至还没有回答这个问题。你的代码已经在我的OP中了-对不起,我认为你不明白我的问题-没关系