相关疑难解决方法(0)

为什么EditText中的输入值在RecyclerView中滚动时交换其位置?

在EditText中输入输入后,如果向上或向下滚动非常快,则输入值会在RecyclerView中的另一个EditText中交换其位置.
在滚动之前,数据位于第一个EditText中.
在向上和向下滚动之后,第一个EditText的值将其位置更改为第4个,并且交换是随机的.是否有任何工作来稳定数据.

这是一个示例截图

这是模型类:

public class Product {    
    public int pId;    
    public String pName;    
    public double unit_price;    
    public double discount;    
}    
Run Code Online (Sandbox Code Playgroud)

这是适配器类:

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ProductListHolder> {
Context context;
List<Product> productList;

public ProductAdapter(Context c, List<Product> lp){
    this.context = c;
    this.productList = lp;
}

public class ProductListHolder extends RecyclerView.ViewHolder{
    TextView tvName;
    TextView tvPrice;
    TextView tvDiscount;
    TextView tvTotal;
    EditText etQuantity;
    public ProductListHolder(View itemView) {
        super(itemView);
        tvName = (TextView) itemView.findViewById(R.id.tvName);
        tvPrice = (TextView) itemView.findViewById(R.id.tvPrice);
        tvDiscount = (TextView) itemView.findViewById(R.id.tvDiscount);
        tvTotal = (TextView) …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-viewholder android-recyclerview

7
推荐指数
3
解决办法
7291
查看次数

Recyclerview滚动时更改项目

有人可以向我解释,问题是什么?

当我向下滚动然后回到顶部时,我的项目已更改为列表中的其他项目,如果我再次滚动,则会再次更改项目.

这是我的适配器.

public class AcademicAdapter extends RecyclerView.Adapter<AcademicAdapter.AcademicVH> {
    private LayoutInflater inflater;
    private List<AcademicStatus> data;

public AcademicAdapter(List<AcademicStatus> data) {
    this.data = data;
}

@Override
public AcademicVH onCreateViewHolder(ViewGroup parent, int viewType) {
    inflater = LayoutInflater.from(parent.getContext());
    View view = inflater.inflate(R.layout.row_academic_level, parent, false);

    return new AcademicVH(view);
}

@Override
public void onBindViewHolder(AcademicVH holder, int position) {
    View view = inflater.inflate(R.layout.row_container_academic_level, holder.containerData, false);

    TextView txtSubject = (TextView) view.findViewById(R.id.txtSubjectValue);
    TextView txtGroup = (TextView) view.findViewById(R.id.txtGroupValue);
    TextView txtStatus = (TextView) view.findViewById(R.id.txtStatusValue);
    TextView txtFinalNote = (TextView) view.findViewById(R.id.txtFinalNoteValue);
    TextView txtYear …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

3
推荐指数
3
解决办法
2万
查看次数

回滚视图在滚动时获得更改

我正在尝试动态更改RecycleView中的图像.它会成功更改,但是当我滚动RecycleView时,ImageView将会发生变化

这是我的适配器类代码:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> {
    private List<ItemObject> itemList;
    private Context context;
    OnGridSelected onGridObj;
    public RecyclerViewAdapter(Context context, List<ItemObject> itemList,OnGridSelected onGridObj) {
        this.itemList = itemList;
        this.context = context;
        this.onGridObj = onGridObj;
    }
    @Override
    public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
        View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_list, null);
        RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView,itemList,onGridObj);
        return rcv;
    }
    @Override
    public void onBindViewHolder(RecyclerViewHolders holder, int position) {
        if(!itemList.get(position).isSelected()) {
            holder.countryName.setText(itemList.get(position).getName());
            holder.countryPhoto.setImageResource(itemList.get(position).getPhoto());
            itemList.get(position).setIsSelected(true);
        }
    }
    @Override
    public int getItemCount() {
        return this.itemList.size();
    }
}
Run Code Online (Sandbox Code Playgroud)

如何防止回收视图回收?

android recycler-adapter android-recyclerview

1
推荐指数
1
解决办法
3568
查看次数