Сбой приложения Android, несмотря на обнаруженную исключительную ситуацию - PullRequest
0 голосов
/ 15 июля 2011

Я пишу простое приложение, которое позволяет пользователю вводить свой доход и вычитает налог, а затем сохраняет сумму в файле для дальнейшего использования.Всякий раз, когда я пытаюсь ввести сумму, я получаю предупреждение о том, что приложение неожиданно остановилось.Вот мой код:

public void onClick(View v) {
    // TODO Auto-generated method stub
    try {

        if (preTax !=null){         
            Double incomeAmount = Double.parseDouble(preTax.getText().toString());
            incomeAmount =- (20 *100)/incomeAmount;     
            Double incomeRounded = Round(incomeAmount);
            Toast.makeText(null, "Your income minus tax = "+incomeRounded, Toast.LENGTH_LONG).show();


            FileOutputStream fos = openFileOutput("income", Context.MODE_PRIVATE);
            fos.write("1000".getBytes());
            fos.close();
        }
        else {

            Double incomeAmount = Double.parseDouble(postTax.getText().toString());
            Double incomeRounded = Round(incomeAmount);
            Toast.makeText(null, "Your income is: "+ incomeRounded, Toast.LENGTH_LONG).show();


            FileOutputStream fos = openFileOutput("income", Context.MODE_PRIVATE);
            fos.write("1000".getBytes());
            fos.close();
        }

    } catch (Exception e){
        Toast.makeText(null, "Please fill in the catagories" + e, Toast.LENGTH_LONG).show();
    }
}

Эта проблема возникала до того, как был добавлен файл fileoutstream, поэтому я знаю, что это не проблема, но мне не ясно, что это такое.Программа аварийно завершает работу независимо от того, является ли EditText пустым или нет.Конечно, try / catch должен отлавливать какие-либо ошибки?

Ответы [ 2 ]

3 голосов
/ 15 июля 2011

Toast.makeText(null, "Please fill in the catagories" + e, Toast.LENGTH_LONG).show();

должно быть

Toast.makeText(v.getContext(), "Please fill in the catagories" + e, Toast.LENGTH_LONG).show();

вы не можете передать null для контекста, он должен быть действительным.

2 голосов
/ 15 июля 2011

Передача нулевого значения для контекста не совсем помогает. Ваше приложение взрывается, попадает в ловушку и снова взрывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...