各行に EditText を持つ ListView があります。ユーザーは、EditText に取り込まれた値を更新し、ボタンをクリックして、ListView の上部にある新しい合計を更新できます。ここでの私のアプローチは、すべての ListView レコードをループして EditText の値を取得し、必要な計算を実行してから、UI を更新することです。私の問題は、間違いなく値が設定されているにもかかわらず、5回目の繰り返しでNullPointerExceptionを受け取り続けることです。最初の 4 回の反復では問題なく動作します。私のコードは正しいですか、および/または私がやろうとしていることに対して別のアプローチをとるべきですか:
button_finish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double sumOfAppliedAmounts = 0;
Bundle extras = getIntent().getExtras();
double exchange_rate = Double.parseDouble(extras.getString("exchange_rate")) / 100;
double convertedPaymentAmount;
if (exchange_rate >= 1)
convertedPaymentAmount = Double.parseDouble(extras.getString("payment_amount")) / exchange_rate;
else
convertedPaymentAmount = Double.parseDouble(extras.getString("payment_amount")) * exchange_rate;
for (int i = 0; i < (m_listview.getCount()); i++) {
v = m_listview.getChildAt(i);
applied_amount = (EditText) v.findViewById(R.id.list_text_applied_amount_value);
sumOfAppliedAmounts = sumOfAppliedAmounts + Double.parseDouble(applied_amount.getText().toString());
}
text_remaining_converted_amount.setText(String.valueOf(convertedPaymentAmount - sumOfAppliedAmounts));
}
});