Я пытаюсь получить значения EditText из RecyclerView (Adapter).
class BillingOrderListHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView Product, type,vartie,unitnumber, Total;
LinearLayout CardView;
BillingOrderListHolder (View itemView) {
super(itemView);
Product = itemView.findViewById(R.id.Product);
type = itemView.findViewById(R.id.type);
vartie = itemView.findViewById(R.id.vartie);
unitnumber= itemView.findViewById(R.id.unitnumber);
rate = itemView.findViewById(R.id.rate);
Total= itemView.findViewById(R.id.Total);
rate.addTextChangedListener(new TextWatcher(){
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
if (!charSequence.toString().equalsIgnoreCase("")) {
int result = (dataList.get(getAdapterPosition()).getUnitCount() * Integer.valueOf(charSequence.toString()));
Total.setText(" = Rs:" + String.valueOf(result));
onEditTextChanged.onTextChanged(i, charSequence.toString());
}
dataList.get(getAdapterPosition()).setEditTextValue(rate.getText().toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
Если пользователь изменяет значение в EditText, общая сумма рассчитывается соответствующим образом.Я просто хочу получить значение EditText из RecyclerView, и я генерирую Счет на общую сумму.
int sNO = 0, qTY = 0, TotalCharges = 0, Price = 0;
String ProductType, Type, Veriety;
for (int i = 0; i < DeliverOrderlist.size(); i++){
sNO = i + 1;
ProductType = DeliverOrderlist.get(i).getProduct();
Type = DeliverOrderlist.get(i).getType();
serilno.addElement(new Paragraph(String.valueOf(sNO)));
Veriety = DeliverOrderlist.get(i).getVariety();
qTY = DeliverOrderlist.get(i).getUnitCount();
qty.addElement(new Paragraph(String.valueOf(qTY)));
description.addElement(new Paragraph(ProductType + " " + Type + " " + Veriety));
Price = Integer.parseInt(Billing_InvoiceAdapter.dataList.get(i).getEditTextValue());
price.addElement(new Paragraph(String.valueOf(Price)));
int result = qTY * Price;
amount.addElement(new Paragraph(String.valueOf(result)));
TotalCharges += result;
}
Когда я запускаю приведенный выше код, он работает нормально, если я не изменяю значение в EditText.Если я изменяю значение в любом из EditText в recyclerView, он получает последнее значение поля EditText из recyclerView и устанавливает это значение равным значению EditText, которое я редактировал.Прошу прощения, если мне непонятно с информацией.Я делаю что-то не так?Может
Я также пытался это , но это работает, только если я редактирую значение в EditText.Иначе это дает ошибку исключения нулевой точки.Кто-нибудь, помогите мне с этим, пожалуйста?Заранее спасибо.