Como concertar erro que dá ao não preencher campo de calculadora do java Android Studio?

Olá pessoal tudo bem? bom, fiz uma calculadora simples somente de soma para testar, busquei ajuda aqui no site mesmo, mas ai me veio uma dúvida, ao NÃO PREENCHER os campos da erro no aplicativo. Alguém poderia me sugerir uma alternativa para o erro?

public class MainActivity extends AppCompatActivity {

//Campos do layout
EditText num1, num2;
TextView res;
Button btsoma;

//Variaveis da classe para o calculo
double n1, n2, resultado;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Pegando os valores do usuário
    num1    = (EditText) findViewById(R.id.txtRes1);
    num2    = (EditText) findViewById(R.id.txtRes2);
    res     = (TextView) findViewById(R.id.lblres);

    //pegando o valor do botão
    btsoma  = (Button) findViewById(R.id.btcalculo);

    //Botão Somar!
    btsoma.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //Passando os valores do layout para as variaveis da classe

            n1 = Double.parseDouble(num1.getText().toString());
            n2 = Double.parseDouble(num2.getText().toString());

                resultado = n1 + n2;

            //Passando os valores da soma para o campo Resultado do layout
            res.setText(String.valueOf(resultado));
        }
    });

}

}

Você está fazendo a conversão diretamente.
Para evitar problemas, o ideal seria criar uma validação anterior. Adicionar mais um ou dois passos e verificar se algum valor foi omitido,

 String valNum1 = num1.getText().toString();
 if(null == valNum1 || "".equals(valNum1.trim()) {
    //Trata como deve tratar
 }
  n1 = Double.parseDouble(valNum1);

Obrigado Darlan, vou testar aqui!

Realmente funcionou, fiz assim pra quem tiver dúvidas…

public class MainActivity extends AppCompatActivity {

//Campos do layout
EditText num1, num2;
TextView res;
Button btsoma;

//Variaveis da classe para o calculo
double n1, n2, resultado;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //Pegando os valores do usuário
    num1    = (EditText) findViewById(R.id.txtRes1);
    num2    = (EditText) findViewById(R.id.txtRes2);
    res     = (TextView) findViewById(R.id.lblres);

    //pegando o valor do botão
    btsoma  = (Button) findViewById(R.id.btcalculo);

    //Botão Somar!
    btsoma.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Caso valor de 0 usasse esta condição para tratar
            String valNum1 = num1.getText().toString();
            if(null == valNum1 || "".equals(valNum1.trim()) || ".".equals(valNum1.trim())) {
                //Trata como deve tratar
                valNum1 = "0";
                num1.setText("0");
            }
            String valNum2 = num2.getText().toString();
            if(null == valNum2 || "".equals(valNum2.trim()) || ".".equals(valNum2.trim())) {
                valNum2 = "0";
                num2.setText("0");
            }

            //Passando os valores do layout para as variaveis da classe

            n1 = Double.parseDouble(valNum1);
            n2 = Double.parseDouble(valNum2);

                resultado = n1 + n2;

            //Passando os valores da soma para o campo Resultado do layout
            res.setText(String.valueOf(resultado));
        }
    });

}

}

Graças ao Darlan…

1 curtida