У меня есть TextView для каждого элемента и добавлено holder.item_edit_text.addTextChangedListener
в onBindViewHolder
для длинного списка и интерфейс, который вычисляет итоговое значение на уровне фрагмента, но странно, когда пользователь печатает в одном представлении, вызывается onBindViewHolder
несколько предметов.То есть, если пользователь вводит 5, я получаю кратные 5 в зависимости от переработки (количество элементов в списке), например, 15 или 25
RECYCLERVIEW onBindViewHolder
holder.item_edit_text.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence amount, int start, int before, int count) {
calculateTotal.onAmountAdded(current, amount.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
@Override
public int getItemCount() {
if (Accounts != null) {
return Accounts.size();
}
return 0;
}
Вопрос в том, как я могуубедитесь, что onBindViewHolder
вызывается для одного предмета в обзоре переработчика за раз
ФРАГМЕНТ
@Override
public void onAmountAdded(Account account, String amount) {
private Map<Account, String> orderItems = new HashMap<>();
if (amount.length() < 9) {
orderItems.put(account, amount);
int newTotal = 0;
Iterator iterator = orderItems.entrySet().iterator();
while (iterator.hasNext()) {
try {
Map.Entry mentry = (Map.Entry) iterator.next();
newTotal += Integer.parseInt(mentry.getValue().toString());
} catch (Exception e) {
e.printStackTrace();
}
}
text_total.setText(ValidationUtil.formatNumber(String.valueOf(newTotal)));
return;
}
}