在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
有人可以向我解释,问题是什么?
当我向下滚动然后回到顶部时,我的项目已更改为列表中的其他项目,如果我再次滚动,则会再次更改项目.
这是我的适配器.
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) 我正在尝试动态更改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 ×3