How to calculate two sums with just one button?

0

I would like to know how I can do to calculate with just one button two different sums, as I did in the example in the image.

I have the code this way, but only with 2 numbers. How do I make another calculation at the same time with the same button?

public void calcular (View v){

        NumberFormat formatter = new DecimalFormat("#0.00");

        EditText resultado1 = (EditText) findViewById(R.id.editText15);
        String stringresultado1 = resultado1.getText().toString();

        EditText resultado2 = (EditText) findViewById(R.id.editText19);
        String stringresultado2 = resultado2.getText().toString();


        double valorresultado1, valorresultado2;


        if(stringresultado1.trim().isEmpty()){valorresultado1 = 0; } 
       else{valorresultado1 = Double.parseDouble(stringresultado1);}

        if(stringresultado2.trim().isEmpty()){valorresultado2 = 0; } 
        else{valorresultado2 = Double.parseDouble(stringresultado2);}
      if (stringresultado1.trim().isEmpty() &&stringresultado2.trim().isEmpty())
        {
        Toast.makeText(getApplicationContext(), "Campos em branco",
        Toast.LENGTH_LONG).show();
        }
        else
        {

            double resu = valorresultado1 + valorresultado2;


            TextView resultado = (TextView) findViewById(R.id.textView32);
            resultado.setText (formatter.format(resu) + "€" );
     }

}

    
asked by anonymous 11.10.2017 / 02:39

2 answers

0

Hmmm ... I confess that I did not quite understand what you want to do. But if that's what I'm thinking, the code below should work (with proper layout element ID changes to suit your problem).

public void calcular (View v){

        NumberFormat formatter = new DecimalFormat("#0.00");

        EditText resultadoA1 = (EditText) findViewById(R.id.editText15);
        String stringResultadoA1 = resultadoA1.getText().toString();

        EditText resultadoB1 = (EditText) findViewById(R.id.editText19);
        String stringResultadoB1 = resultadoB1.getText().toString();

        EditText resultadoA2 = (EditText) findViewById(R.id.editText23);
        String stringResultadoA2 = resultadoA2.getText().toString();

        EditText resultadoB2 = (EditText) findViewById(R.id.editText27);
        String stringResultadoB2 = resultadoB2.getText().toString();


        double valorResultadoA1, valorResultadoB1, valorResultadoA2, valorResultadoB2;


        if(stringResultadoA1.trim().isEmpty()){
            valorResultadoA1 = 0;
        }else{
            valorResultadoA1 = Double.parseDouble(stringResultadoA1);
        }

        if(stringResultadoB1.trim().isEmpty()){
            valorResultadoB1 = 0;
        }else{
            valorResultadoB1 = Double.parseDouble(stringResultadoB1);
        }

        if(stringResultadoA2.trim().isEmpty()){
            valorResultadoA2 = 0;
        }else{
            valorResultadoA2 = Double.parseDouble(stringResultadoA2);
        }

        if(stringResultadoB2.trim().isEmpty()){
            valorResultadoB2 = 0;
        }else{
            valorResultadoB2 = Double.parseDouble(stringResultadoB2);
        }

        if(stringResultadoA1.trim().isEmpty() && stringResultadoB1.trim().isEmpty() && stringResultadoA2.trim().isEmpty() && stringResultadoB2.trim().isEmpty() ){

            Toast.makeText(getApplicationContext(), "Campos em branco", Toast.LENGTH_LONG).show();
        }else{

            double resultado1 = valorResultadoA1 + valorResultadoB1;
            double resultado2 = valorResultadoA2 + valorResultadoB2;

            TextView textView1 = (TextView) findViewById(R.id.textView32);
            TextView textView2 = (TextView) findViewById(R.id.textView33);
            textView1.setText (formatter.format(resultado1) + "€" );
            textView2.setText (formatter.format(resultado2) + "€" );
        }

}
    
11.10.2017 / 09:57
2

You can do a method that is responsible for the calculation, giving you the component ids with the values and then call this method twice.

public void calcular(View v) {
    calcular(R.id.editText15, R.id.editText19, R.id.editText32);
    calcular(R.id.editText16, R.id.editText20, R.id.editText33);
}

private void calcular(String edit1, String edit2, String viewResultado) {

    NumberFormat formatter = new DecimalFormat("#0.00");

    String entrada1 =
            ((EditText) findViewById(edit1)).getText().toString().trim();

    String entrada2 =
            ((EditText) findViewById(edit2)).getText().toString().trim();

    double valor1 = entrada1.isEmpty() ? 0.0 : Double.parseDouble(entrada1);
    double valor2 = entrada2.isEmpty() ? 0.0 : Double.parseDouble(entrada2);

    if (resultado1.isEmpty() || resultado2.isEmpty()) {
        Toast.makeText(getApplicationContext(), "Campos em branco", Toast.LENGTH_LONG).show();
    } else {
        double soma = valor1 + valor2;
        ((TextView) findViewById(viewResultado)).setText(formatter.format(soma) + "€");
    }
}

Also note that it replaces your && with || . It should display the message if at least one of the fields is empty, and not only if both are empty.

    
11.10.2017 / 09:58