Не удается установить значение по умолчанию для spinner

#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() то, что в противном случае тоже не сработает.