title: How to check empty EditText before calculate
body: <p>In my project I have a button that calculate at at least 2 EditBox, but when I leave it empty and calculate I got crash app:</p>
  
  <pre><code>java.lang.NumberFormatException: Invalid double: ""
  at java.lang.StringToReal.invalidReal(StringToReal.java:63)
  at java.lang.StringToReal.parseDouble(StringToReal.java:248)
  at java.lang.Double.parseDouble(Double.java:295)
  at com.math.square.Level1.calculate(Level1.java:71)
  at com.math.square.Level1.access$0(Level1.java:66)
  at com.math.square.Level1$2.onClick(Level1.java:62)
  at android.view.View.performClick(View.java:3511)
  at android.view.View$PerformClick.run(View.java:14105)
  at android.os.Handler.handleCallback(Handler.java:605)
  at android.os.Handler.dispatchMessage(Handler.java:92)
  at android.os.Looper.loop(Looper.java:137)
  at android.app.ActivityThread.main(ActivityThread.java:4424)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:511)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>What can I do to check before calculate, and if it's empty, alert the User and do not calculate?</p>
  
  <p>The code:</p>
  
  <pre><code>public class Level1 extends Activity {
      EditText amount1;
      EditText amount2;
      EditText amount3;
      EditText amount4;
      Button calculate;
      double a=0;
      double b=0;
      double c=0;
      double d=0;
      double e=0;
      double f=0;
      double g=0;
      double h=0;
  
      /** Called when the activity is first created. */
      @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.level1);
  
            initControls();
  
          findViewById(R.id.Button05).setOnClickListener(
                  new OnClickListener() {
              public void onClick(View v) {
                  btn05(true);
              }
          });;
        }
  
            private void initControls()
            {
                amount1=(EditText)findViewById(R.id.amount1);
                amount2=(EditText)findViewById(R.id.amount2);
                amount3=(EditText)findViewById(R.id.amount3);
                amount4=(EditText)findViewById(R.id.amount4);
                calculate=(Button)findViewById(R.id.calculate);
                calculate.setOnClickListener(new Button.OnClickListener()
                {
                    public void onClick
                (View  v) { calculate();}
                });
            }
  
          private void calculate()
            {
                a=Double.parseDouble(amount1.getText().toString());
                b=Double.parseDouble(amount2.getText().toString());
                d=Double.parseDouble(amount3.getText().toString());
                e=Double.parseDouble(amount4.getText().toString());
  
                /** Check Value &gt; 0*/
                EditText amount1value = (EditText)this.findViewById(R.id.amount1);
                EditText amount2value = (EditText)this.findViewById(R.id.amount2);
                EditText amount3value = (EditText)this.findViewById(R.id.amount3);
                EditText amount4value = (EditText)this.findViewById(R.id.amount4);
                Integer nameLen = 2;
  
                int len = amount1value.length();
                int len2 = amount2value.length();
                int len3 = amount3value.length();
                int len4 = amount4value.length();
  
                if (len&lt;nameLen) {
                    amount1value.setError(getText(R.string.blank));
                    TextView Result = (TextView)findViewById(R.id.Result);
                    Result.setText(R.string.error_character_length);
                } else 
                if (len2&lt;nameLen) {
                    amount2value.setError(getText(R.string.blank));
                    TextView Result = (TextView)findViewById(R.id.Result);
                    Result.setText(R.string.error_character_length);
                } else 
                if (len3&lt;nameLen) {
                    amount3value.setError(getText(R.string.blank));
                    TextView Result = (TextView)findViewById(R.id.Result);
                    Result.setText(R.string.error_character_length);
                } else 
                if (len4&lt;nameLen) {
                    amount4value.setError(getText(R.string.blank));
                    TextView Result = (TextView)findViewById(R.id.Result);
                    Result.setText(R.string.error_character_length);
                }  
  
                else {
  
                c=a+b;
                f=d+e;
                g=a+d;
                h=b+e;
  
                if(c==9 &amp;&amp; f==12 &amp;&amp; g==8 &amp;&amp; h==13){
                  TextView Result = (TextView)findViewById(R.id.Result);
                  Result.setText(R.string.correct);
                }
                else {
                  TextView Result = (TextView)findViewById(R.id.Result);
                  Result.setText(R.string.wrong);
                }
                }
            }
  </code></pre>
  
  <p>I created a check to see if there are 2 chars to try to avoid blank for users, but it's just a workaround.</p>