Я новичок в разработке Android и пытаюсь преобразовать строку в двойную, затем округлить до двух десятичных знаков, а затем преобразовать обратно в строку для отображения в ListView. Вот мой код:
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent){
String expenseCategory = getItem(position).getExpenseCategory();
String expenseAmount = getItem(position).getExpenseAmount();
String expenseEntryDate = getItem(position).getExpenseTodayEntry();
Double eA = Double.parseDouble(expenseAmount);
String eAnew = String.format("%.2f",eA);
Expenses ex = new Expenses(eAnew, expenseCategory, expenseEntryDate);
LayoutInflater inflater = LayoutInflater.from(mContext);
convertView = inflater.inflate(mResource, parent, false);
TextView expenseCategoryTextView = (TextView) convertView.findViewById(R.id.CategoryHistoryTV);
TextView expenseDateEntryTextView = (TextView) convertView.findViewById(R.id.DateHistoryTV);
TextView expenseAmountTextView = (TextView) convertView.findViewById(R.id.AmountHistoryTV);
expenseCategoryTextView.setText(expenseCategory);
expenseDateEntryTextView.setText(expenseEntryDate);
expenseAmountTextView.setText(eAnew);
expenseCategoryTextView.setTextColor(Color.RED);
expenseDateEntryTextView.setTextColor(Color.RED);
expenseAmountTextView.setTextColor(Color.RED);
return convertView;
}
И вот ошибка:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.trim()' on a null object reference
он работает правильно без:
Double eA = Double.parseDouble(expenseAmount);
String eAnew = String.format("%.2f",eA);
Но вместо этого он дает мне вывод например,
1000.0000
Я понимаю, что это может быть плохой дизайн, однако объявление параметра costAmount как double не работает в других областях моего кода по разным причинам.
Я пытался использовать условие "поймать" нулевое значение, как указано в ошибке, но пока ничего не работает.