How do I check the blanks?

0

It is a math media program, I need help to check if the user leaves it blank and click the average button.

package suamedia.project.com.suamedia;

import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.util.EmptyStackException;

import static android.text.TextUtils.isEmpty;

public class MainActivity extends AppCompatActivity {

    private EditText primeiraNota;
    private EditText segundaNota;
    private TextView resultadoMedia;
    private Button botaoAcaoFinal;


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

        //Localizar os ids da tela
        primeiraNota = (EditText) findViewById(R.id.recebeNotaUmId);
        segundaNota = (EditText) findViewById(R.id.recebeNotaDoisId);
        botaoAcaoFinal = (Button) findViewById(R.id.botaoMediaId);


        //adicionar um evento ao clicar no botão

        botaoAcaoFinal.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                //Recuperar o que foi Digitado

                String textoDigitado1 = primeiraNota.getText().toString();
                String textoDigitado2 = segundaNota.getText().toString();
                Float resultadoParcial = Float.parseFloat(textoDigitado1);
                Float resultadoParcial2 = Float.parseFloat(textoDigitado2);
                Float resultadoFinal = (resultadoParcial + resultadoParcial2) / 2;




                if(textoDigitado1.trim().isEmpty()) {
                    //é nula, vazia ou só contém caracteres de espaço, tabulação e quebras de linha


                    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                    dialogo.setTitle("Resultado");
                    dialogo.setMessage("Insira as notas 1 ou 2!");
                    dialogo.setNeutralButton("OK", null);
                    dialogo.setCancelable(false);
                    dialogo.show();
                    return;
                }if (textoDigitado2.trim().isEmpty()) {
                        //é nula, vazia ou só contém caracteres de espaço, tabulação e quebras de linha


                        AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                        dialogo.setTitle("Resultado");
                        dialogo.setMessage("Insira as notas 1 ou 2!");
                        dialogo.setNeutralButton("OK", null);
                        dialogo.setCancelable(false);
                        dialogo.show();
                        return;
                    }


                if((resultadoParcial > 10) && (resultadoParcial2 > 10)){


                    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                    dialogo.setTitle("Resultado");
                    dialogo.setMessage("Soma superior ao valor da média!");
                    dialogo.setNeutralButton("OK", null);
                    dialogo.setCancelable(false);
                    dialogo.show();
                    return;

                }
                if ((resultadoParcial <= 10) && (resultadoParcial2 > 10)){

                    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                    dialogo.setTitle("Resultado");
                    dialogo.setMessage("Sua nota2 está superior ao valor permitido!");
                    dialogo.setNeutralButton("OK", null);
                    dialogo.setCancelable(false);
                    dialogo.show();
                    return;

                }else
                    if((resultadoParcial2 <= 10) && (resultadoParcial > 10)){

                        AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                        dialogo.setTitle("Resultado");
                        dialogo.setMessage("Sua nota1 está superior ao valor permitido!");
                        dialogo.setNeutralButton("OK", null);
                        dialogo.setCancelable(false);
                        dialogo.show();
                        return;
                    }


                if ((resultadoFinal >= 8) && (resultadoFinal <= 10)) {

                    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                    dialogo.setTitle("Resultado");
                    dialogo.setMessage("Excelente, você foi aprovado e está de parabéns, sua média foi: " + resultadoFinal + " Pontos.");
                    dialogo.setNeutralButton("OK", null);
                    dialogo.setCancelable(false);
                    dialogo.show();
                }
                if ((resultadoFinal >= 7) && (resultadoFinal <= 7.9)) {

                    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                    dialogo.setTitle("Resultado");
                    dialogo.setMessage("Razoável, você foi aprovado, mas pode melhorar, sua média foi: " + resultadoFinal + " Pontos.");
                    dialogo.setNeutralButton("OK", null);
                    dialogo.setCancelable(false);
                    dialogo.show();

                } else if (resultadoFinal <= 6.9) {

                    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                    dialogo.setTitle("Resultado");
                    dialogo.setMessage("Péssimo, você foi reprovado e está na final, sua média foi: " + resultadoFinal + " Pontos.");
                    dialogo.setNeutralButton("OK", null);
                    dialogo.setCancelable(false);
                    dialogo.show();


                }

            }
        });
    }
}

When opening the program made in Android Studio and running all the tasks it works with exception of white space checking, ie I click to add with the white space and the app closes giving continuous errors

    
asked by anonymous 28.07.2017 / 23:01

1 answer

0

There is no error comparing if the string is empty. The only error is trying to use Float.parseFloat before checking to see if there is white space in EditText or is really empty. So just pass variables of type Float to after you check that EditTexts are empty.

String textoDigitado1 = primeiraNota.getText().toString();
String textoDigitado2 = segundaNota.getText().toString();

if(textoDigitado1.trim().isEmpty() || textoDigitado2.trim().isEmpty()) {

    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainTest.this);
    dialogo.setTitle("Resultado");
    dialogo.setMessage("Insira as notas 1 ou 2!");
    dialogo.setNeutralButton("OK", null);
    dialogo.setCancelable(false);
    dialogo.show();

} else {

    Float resultadoParcial = Float.parseFloat(textoDigitado1);
    Float resultadoParcial2 = Float.parseFloat(textoDigitado2);
    Float resultadoFinal = (resultadoParcial + resultadoParcial2) / 2;
    .
    . 
    .
    // aqui você continua com seu código...

Extra hint:

Create a method to display the alert, such as exibeAlerta() . So you do not have to create a AlertDialog for each comparison. See:

public void exibeAlerta(String message){
    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainTest.this);
    dialogo.setTitle("Resultado");
    dialogo.setMessage(message);
    dialogo.setNeutralButton("OK", null);
    dialogo.setCancelable(false);
    dialogo.show();
}

To use just do it this way:

if ((resultadoParcial > 10) && (resultadoParcial2 > 10)) {

    exibeAlerta("Soma superior ao valor da média!");
    return;

} else if ((resultadoParcial <= 10) && (resultadoParcial2 > 10)) {

    exibeAlerta("Sua nota2 está superior ao valor permitido!");
    return;

} else if ((resultadoParcial2 <= 10) && (resultadoParcial > 10)) {

    exibeAlerta("Sua nota1 está superior ao valor permitido!");
    return;
}

if ((resultadoFinal >= 8) && (resultadoFinal <= 10)) {

    exibeAlerta("Excelente, você foi aprovado e está de parabéns, sua média foi: " + resultadoFinal + " Pontos.");
} else if ((resultadoFinal >= 7) && (resultadoFinal <= 7.9)) {

    exibeAlerta("Razoável, você foi aprovado, mas pode melhorar, sua média foi: " + resultadoFinal + " Pontos.");

} else if (resultadoFinal <= 6.9) {
    exibeAlerta("Péssimo, você foi reprovado e está na final, sua média foi: " + resultadoFinal + " Pontos.");

}
    
28.07.2017 / 23:34