J'ai appelé recyclerview dans lequel mon arraylist est attaché avec l'adaptateur. Et quand l'adaptateur a son propre fichier de ligne dans lequel j'ai pris un texte d'édition et manuellement, je peux entrer le montant.La valeur Edittext disparaît lors du défilement de recyclerview dans Android
Mais le problème est que lorsque je fais défiler le recyclerview, la valeur du texte d'édition a disparu. Donc, ne peut pas voir les valeurs que je saisis.
classe Adaptateur
public class AddSecondarySalesOrderProductDetailsAdapter extends RecyclerView.Adapter {
ArrayList<SecondarySalesProductDetailsModel> mArrSecondarySalesProductDetailsModel;
ArrayList<String> mArrProductQuantity;
private int mViewItem = 1;
private Activity mActivity;
private LayoutInflater mLayoutInflater;
ImageView mImageDeleteProduct;
private String mProductName, mProductAvaQuantity, mProductSKU, mOrderedQuantity;
/**
* Adapter contains the data to be displayed
*/
public AddSecondarySalesOrderProductDetailsAdapter(Activity mActivity, ArrayList<SecondarySalesProductDetailsModel>
mArrSecondarySalesProductDetailsModel) {
this.mActivity = mActivity;
this.mArrSecondarySalesProductDetailsModel = mArrSecondarySalesProductDetailsModel;
mArrProductQuantity = new ArrayList<>();
mLayoutInflater = LayoutInflater.from(mActivity);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mLayoutInflater.inflate(R.layout.raw_add_secondary_sales_order_product_details, parent,
false);
return new CustomViewHolder(view);
}
@Override
public int getItemViewType(int position) {
return mArrSecondarySalesProductDetailsModel.get(position) != null ? mViewItem : 0;
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
holder.setIsRecyclable(false);
final SecondarySalesProductDetailsModel mAllProductDetailsModel = mArrSecondarySalesProductDetailsModel.get(position);
((CustomViewHolder) holder).mImageDeleteProduct.setTag(position);
mProductName = mAllProductDetailsModel.getProductName();
mProductAvaQuantity = String.valueOf(mAllProductDetailsModel.getAvalQty());
mProductSKU = mAllProductDetailsModel.getSku();
((CustomViewHolder) holder).mTextProductName.setText(mProductName);
((CustomViewHolder) holder).mTextProductAvaQuantity.setText(mProductAvaQuantity);
((CustomViewHolder) holder).mTextProductSKU.setText(mProductSKU);
((CustomViewHolder) holder).mImageDeleteProduct.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mArrSecondarySalesProductDetailsModel.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, mArrSecondarySalesProductDetailsModel.size());
if (mArrSecondarySalesProductDetailsModel.size() == 0) {
AddSecondarySalesOrderProductDetailFragment.mRelativeNoRecords.setVisibility(View.VISIBLE);
}
}
});
OrderedQuantityTextWatcher textWatcher = new OrderedQuantityTextWatcher(holder, ((CustomViewHolder) holder).mEditOrderedQuantity, position);
((CustomViewHolder) holder).mEditOrderedQuantity.addTextChangedListener(textWatcher);
((CustomViewHolder) holder).mEditOrderedQuantity.setTag(position);
}
private class OrderedQuantityTextWatcher implements TextWatcher {
private EditText editText;
private int position;
private RecyclerView.ViewHolder holder;
public OrderedQuantityTextWatcher(RecyclerView.ViewHolder holder, EditText editText, int
pos) {
this.holder = holder;
this.editText = editText;
this.position = pos;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// mOrderedQuantity = mEditOrderedQuantity.getText().toString().trim();
}
@Override
public void afterTextChanged(Editable editable) {
// int position = holder.getAdapterPosition();
int position = (int) editText.getTag();
Common.insertLog("Position: " + position);
Common.insertLog("Value: " + editable);
SecondarySalesProductDetailsModel secondarySalesProductDetailsModel = new
SecondarySalesProductDetailsModel();
secondarySalesProductDetailsModel.setId(mArrSecondarySalesProductDetailsModel.get(position).getId());
secondarySalesProductDetailsModel.setProductName
(mArrSecondarySalesProductDetailsModel.get(position).getProductName());
secondarySalesProductDetailsModel.setAvalQty(mArrSecondarySalesProductDetailsModel
.get(position).getAvalQty());
secondarySalesProductDetailsModel.setOrderedQty(editable.toString().trim());
secondarySalesProductDetailsModel.setSku(mArrSecondarySalesProductDetailsModel.get
(position).getSku());
secondarySalesProductDetailsModel.setProductId(mArrSecondarySalesProductDetailsModel
.get(position).getProductId());
secondarySalesProductDetailsModel.setSelected(mArrSecondarySalesProductDetailsModel
.get(position).getSelected());
// mArrSecondarySalesProductDetailsModel.add(secondarySalesProductDetailsModel);
Intent intent = new Intent(AppConstants.BROADCAST_SEND_SECONDARY_PRODUCTS);
intent.putExtra(AppConstants.BUNDLE_BROADCAST_ORDERED_QUANTITY,
secondarySalesProductDetailsModel);
LocalBroadcastManager.getInstance(mActivity).sendBroadcast(intent);
}
}
@Override
public int getItemCount() {
return mArrSecondarySalesProductDetailsModel.size();
}
/**
* Initialization of components
*/
public class CustomViewHolder extends RecyclerView.ViewHolder {
TextView mTextProductName, mTextProductAvaQuantity, mTextProductSKU;
EditText mEditOrderedQuantity;
ImageView mImageDeleteProduct;
public CustomViewHolder(final View itemView) {
super(itemView);
this.mImageDeleteProduct = (ImageView) itemView.findViewById(R.id
.image_raw_secondary_sales_order_delete);
this.mTextProductName = (TextView) itemView.findViewById(R.id.text_raw_secondary_sales_order_product_name);
this.mTextProductAvaQuantity = (TextView) itemView.findViewById(R.id
.text_raw_secondary_sales_order_ava_quantity);
this.mTextProductSKU = (TextView) itemView.findViewById(R.id
.text_raw_secondary_sales_order_product_sku);
this.mEditOrderedQuantity = (EditText) itemView.findViewById(R.id
.edit_raw_secondary_sales_order_quantity);
}
}