#java #android #android-sqlite
Вопрос:
Я хочу получить значение статуса из базы данных и установить его на счетчик. Я делаю следующее, но я получаю java.lang.NumberFormatException: For input string: "Cancelled"
spinner.setSelection(Integer.parseInt(job.getStatus()));
JobRepository jobRepository = new JobRepository(a.getApplication());
VehicleRepository vehicleRepository = new VehicleRepository(a.getApplication());
jobRepository.find(UUID.fromString(jobId)).observe(getViewLifecycleOwner(), jc -> {
vehicleRepository.findByJob(fromString(jobId)).observe(getViewLifecycleOwner(), vehicle -> {
Job job = jc.job;
Customer customer = jc.customer;
status.setText(job.getStatus());
customerName.setText(customer.getName());
postcode.setText(job.getPostcode());
notesView.setEms(4);
notesView.setMaxLines(5);
notesView.setText(job.getNotes());
phoneNum.setText(customer.getTel());
emailAdd.setText(customer.getEmail());
emailAdd.setMaxLines(2);
spinner.setSelection(Integer.parseInt(job.getStatus()));
if (job.getUpdatedAt() != null) {
lastUpdate.setText(sdf.format(job.getUpdatedAt()));
}
Комментарии:
1. только из-за вашего исключения вы пытаетесь проанализировать
Cancelled
как число, и это не удается
Ответ №1:
Прежде всего, вам нужно убедиться job.getStatus()
, что это значение, так Int
как setSelection(int позиция ждет, когда вы передадите Int
и Cancelled
не может быть преобразована в Int
, даже если вы используете Integer.parseInt()
.
Кроме того, я не вижу, где вы устанавливаете элементы, так что, возможно, будет хорошей идеей установить элементы, а затем сделать setSelection()
то, что в противном случае тоже не сработает.