【发布时间】:2019-01-10 18:04:34
【问题描述】:
我有一个 CardViews 的 RecyclerView。我试图让它在您单击其中一个 CardView 的位置,它会更改该 CardView 的背景。这部分有效。我被卡住的地方是试图将所有其他 CardViews 改回白色,这样看起来就不会选择多个。
我觉得最好的方法是使用 for 循环,但我似乎找不到 for 循环应该是什么。我还尝试使用notifyDataSetChanged() 重置所有 CardViews,但这也不起作用。
这是我的onItemClicked() 函数(可以正常工作):
mAdapter = new TransferCard(list, getContext(), new TransferCard.OnItemClickListener() {
@Override
public void onItemClick(View v, int position) {
//What code goes here to change all Views in the RecyclerView to have a background of white
RelativeLayout temp = v.findViewById(R.id.cardForeground);
item = list.get(position);
temp.setBackgroundColor(getResources().getColor(R.color.selected));
}
});
这是我的onCreateViewHolder()setOnTouchListener() 事件所在的位置。
@Override
public MyViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.transfer_card, parent, false);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onItemClick(v, parent.indexOfChild(v));
}
});
return new MyViewHolder(itemView);
}
看来我就差不多了,但我需要知道如何处理 for 循环。
【问题讨论】:
标签: android android-studio for-loop android-recyclerview