Я новичок в разработке Android, и я работаю над некоторыми примерами программ. в настоящее время я пытаюсь использовать блок try catch, чтобы предотвратить сбой приложения, если пользователь просто нажимает созданную кнопку, не вводя номер и не выбирая маршрут. К сожалению, try-catch не работает, поскольку приложение продолжает давать сбой и возвращает то же исключение NumberFormatException. Это пример того, как выглядит мой код до сих пор.

handleSubmit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        handleInput = findViewById(R.id.groupInput);
        int numAthletes = Integer.parseInt(handleInput.getText().toString());
        int totalCost;

        try {
            if(dropDown.getSelectedItem().toString().equals("Route 1") ||
                    dropDown.getSelectedItem().toString().equals("Route 2") ||
                    dropDown.getSelectedItem().toString().equals("Route 3") ){
                totalCost = numAthletes * 725;
                displayData.setText(dropDown.getSelectedItem().toString() + " Race Team Fee is  - $" + Integer.toString(totalCost));
            }
        }catch (NumberFormatException e){
            Log.e( "onClick: ","Empty submission" );

        }

    }
});

Это ошибка, которую не улавливают.

java.lang.NumberFormatException: For input string: ""
0
abefroman 10 Мар 2019 в 05:56

1 ответ

Лучший ответ

Вы не поймаете правильную линию.

int numAthletes = Integer.parseInt(handleInput.getText().toString());

Это строка, вызывающая исключение, но вы поместили ее вне блока try {}.

3
Jackey 10 Мар 2019 в 03:00