Anon
Anon

Reputation: 1

Android - Program crashes when there is not input in editText fields

So i'm having a problem in my code which is probably simple to solve but its my first app so cut me some slack. When I enter no values in my editText box my app crashes. Im semi aware why it occurs but I cant seem to solve it.

public void onButtonClick( View v) { Double n1 , n2 , answer1; EditText e1 = (EditText) findViewById(R.id.num1); EditText e2 = (EditText) findViewById(R.id.num2); TextView t1 = (TextView) findViewById(R.id.answer); n1 = Double.parseDouble(e1.getText().toString()); n2 = Double.parseDouble(e2.getText().toString()); if (n1.toString().length()< 0 || n2.toString().length()< 0){ t1.setText("Please enter a number into both the base and height"); }else { answer1 = ((n1 * n2) / 2); t1.setText(Double.toString(answer1)); } }

Upvotes: 0

Views: 643

Answers (2)

Nima
Nima

Reputation: 6563

if (!e1.getText().toString().isEmpty()) {
   // do stuff
}

Upvotes: 1

Eugen Pechanec
Eugen Pechanec

Reputation: 38223

First check if there is input in both EditTexts and only if there is convert it to Double:

if (e1.getText().length() == 0 || e2.getText().length() == 0) {
    t1.setText("Please enter a number into both the base and height");
} else {
    n1 = Double.parseDouble(e1.getText().toString());
    n2 = Double.parseDouble(e2.getText().toString());
    answer1 = ((n1 * n2) / 2);
    t1.setText(Double.toString(answer1));
}

EditText.getText() will never return null (as per source code) so it's safe to use methods on it (such as length().

Upvotes: 1

Related Questions