Моя попытка поймать функцию не будет работать, как ожидалось - PullRequest
0 голосов
/ 29 декабря 2018

Моя программа должна принять заданное значение и найти другое значение с его помощью.Тем не менее, мое утверждение try catch не работает.Он никогда не делает первые 2 оператора if, которые являются наиболее важными частями программы.Третий работает, когда вы вводите оба значения.Заранее спасибо.

        public void calculate(View view) {
    EditText length_find = findViewById(R.id.feet);
    EditText pounds_find = findViewById(R.id.pounds);

    try {
        //int length_int = Integer.parseInt(length_find.getText().toString());
        //int pounds_int = Integer.parseInt(pounds_find.getText().toString());

        double d = .29;
        //double length = length_int;
        //double pounds = pounds_int;
        double w = 24.5 / 12;
        double h = .002 / 12;

        //This Calculates if Pounds are given
        if ((length_find).getText().toString().trim().length() == 0){
            Toast.makeText(MainActivity.this, "Given Pounds", LENGTH_LONG).show();
            int pounds_int = Integer.parseInt(pounds_find.getText().toString());
            double pounds = pounds_int;
            double v = pounds / d;
            double length = v / w / h;
            final TextView mTextView = (TextView) findViewById(R.id.length_show);
            mTextView.setText((int) length);
        }


        //This Calculates if Length is given
        if ((pounds_find).getText().toString().trim().length() == 0){
          Toast.makeText(MainActivity.this, "Given Length", LENGTH_LONG).show();
          int lenght_int = Integer.parseInt(length_find.getText().toString());
          double length = lenght_int;
          double v = length * w * h;
          double answer_pounds = v * d;
          final TextView mTextView = (TextView) findViewById(R.id.pound_show);
          mTextView.setText((int) answer_pounds);
        }
        if((pounds_find).getText().toString().trim().length() > 0 && (length_find).getText().toString().trim().length() > 0){
            Toast.makeText(MainActivity.this, "Whata hell you need me for mate!", LENGTH_LONG).show();
        }

    }
    catch(Exception ex) {
            Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
        }

    }

1 Ответ

0 голосов
/ 29 декабря 2018

Как я понял,

(pounds_find).getText().toString().trim().length() <= 0

или

(length_find).getText().toString().trim().length() <= 0

верно только тогда, когда пользователь ничего не вводил.если он имеет, то 3-е «если» выполнить, как ожидалось.Но когда пользователь ничего не вводит, то

int length_int = Integer.parseInt(length_find.getText().toString());
int pounds_int = Integer.parseInt(pounds_find.getText().toString());

не может быть сделано.потому что это пусто.Я думаю, что это здесь так.Если это не так, пожалуйста, дайте мне знать.Если я ошибаюсь, извините.Вот что я понял отсюда.Если бы вы могли отлаживать и конкретизировать сценарий или исключение, если оно выдает какой-либо, это было бы более полезно

...