gpt4 book ai didi

java - 在 Recyclerview Viewholder 中,每 10 行(而不是 1 行)后标记多行

转载 作者:行者123 更新时间:2023-12-02 09:54:33 25 4
gpt4 key购买 nike

每当我通过 API 更新某个项目的属性时,我都在努力确保其背景的项目是彩色的。值得注意的是,每 10 行之后,下一行就会着色。

在 RecyclerViewAdapter 上,我根据 API 以正确的顺序获取所有项目,但问题出在 if 语句上:不是 isfound 或搜索等于 1 的对象,而是多个对象也接收背景颜色。我该如何修复它?这是必要的代码:

RecyclerviewAdapter

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int position) {
Item item=this.items.get(position);

viewHolder.titleList.setText(item.getTitle());
viewHolder.descriptionList.setText(item.getDescription());
viewHolder.dateList.setText(item.getDate());

if (item.isFound()==1){
viewHolder.layoutList.setBackgroundColor(Color.parseColor("#60ad5e"));
}

if (item.isSearching()==1){
viewHolder.layoutList.setBackgroundColor(Color.parseColor("#ff9d3f"));
}

viewHolder.layoutList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Item item=items.get(position);
Intent intent = new Intent(context, DetailActivity.class);
intent.putExtra(EXTRA_MESSAGE, item);
context.startActivity(intent);
}
});
}

recyclerview 位于 XML 的线性布局内,但可以滚动。其他所有内容都在这段代码中工作,单击列表中的某个项目可以向我展示该项目的更多详细信息,等等。但这只是多个背景颜色而不是一个背景颜色的问题。

最佳答案

您可能应该组合 if 语句并添加 else block 。 RecyclerView 中的 View 会在您滚动时重新使用,因此得名,因此当您的标志未设置时,您需要将它们重置回默认值。

if (item.isFound()==1){
viewHolder.layoutList.setBackgroundColor(Color.parseColor("#60ad5e"));
} else if (item.isSearching()==1){
viewHolder.layoutList.setBackgroundColor(Color.parseColor("#ff9d3f"));
} else {
// reset the color back to default
}

关于java - 在 Recyclerview Viewholder 中,每 10 行(而不是 1 行)后标记多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com