gpt4 book ai didi

android - 在 RecyclerView 中滚动时背景图像随机更改

转载 作者:行者123 更新时间:2023-11-30 01:43:49 24 4
gpt4 key购买 nike

1) 我想知道当我向下或向上滚动时,我的 TextView 背景会乱序,我使用 RecyclerView 创建了 CardView。这是我的自定义适配器

  public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {


public static List<Myitems_item> my_items ;
Context context;

public CustomAdapter(Context context, List<Myitems_item> my_items) {

this.context = context;
this.my_items = my_items;
}


@Override
public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
// create a new view
View itemLayoutView = LayoutInflater.from(viewGroup.getContext()).inflate(
R.layout.innercard_size_selection, null);

// create ViewHolder

ViewHolder viewHolder = new ViewHolder(itemLayoutView);
return viewHolder;
}

@Override
public void onBindViewHolder(final CustomAdapter.ViewHolder viewHolder, int i) {

final Myitems to_off = my_items.get(i);

viewHolder.productSize.setText(Double.toString(to_off.getNumber()));

viewHolder.to_offer = to_off;
}

@Override
public int getItemCount() {
return my_items.size();
}

// inner class to hold a reference to each item of RecyclerView
public class ViewHolder extends RecyclerView.ViewHolder {

public TextView productSize;

public Myitems_item to_offer;

public ViewHolder(View itemLayoutView) {
super(itemLayoutView);

productSize =TextView)itemLayoutView.findViewById(R.id.productSize);

productSize.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

productSize.setBackgroundResource(R.drawable.focus_shape);
}
});

}

}

知道如何解决吗?为什么它在滚动时发生。

2) 如何在 recyclerview 中获得单选模式。 I want like this我的意思是我想创建像 RadioGroup 一样的 recyclerview

最佳答案

在您的模型类 (Myitems_item) 中,您需要使用一些 bool 值“isSelected”来跟踪选定/未选定的案例。然后在你的 onBindViewHolder() 方法中,你需要检查当前位置的项目是否被选中,并相应地设置背景。

对于你的第二个问题,你必须首先使用类似下面的代码为你的项目 View 设置一个边框(将下面的可绘制对象设置为项目背景)。

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#4fa5d5"/>
</shape>

然后对您的第一个问题应用相同的逻辑。您需要在模型中有一个 bool 值来跟踪项目选择。当用户点击一个项目时,将其背景设置为上面的可绘制对象并将该模型项目的 bool 值设置为 true。然后当用户点击下一个项目时,将前一个项目的 bool 值设置为 false,将当前项目设置为 true,然后通知适配器。

希望您明白我的意思。

关于android - 在 RecyclerView 中滚动时背景图像随机更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34018317/

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