Code does not read ELSE

Asked

Viewed 78 times

0

Speak people, I’m a beginner in Android and I would like you to take me without a doubt. I am making an app for the user to complete all Edittext’s so that the program can perform the proper calculations and therefore expose the result in the next Activity, which would be called. After Cod checks Edittext’s, it should enter ELSE in order to open the new window, but this does not occur. The alert messages from the checks are shown normally, but the part about going to another screen is not. Do you know what it could be? Following the code, it’s a little big but it’s not hard and I imagine many of you won’t see it at all, but come on:

  public void onClick (View View) {

    // RESISTENCIA DO CONCRETO

    if (txt_resistencia_concreto.getText().toString().equals("")) {   // O que faltava era o toString()

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a resistência do concreto");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();


        //MASSA ESPECIFICA DO CIMENTO

    } else if (txt_massa_especifica_cimento.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a massa específica do cimento");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //ADITIVO MINERAL - VERIFICAÇÃO 1

        //TODOS OS CAMPOS VAZIOS
    } else if (txt_massa_especifica_aditivo_mineral1.getText().toString().equals("") && txt_teor_aditivo_mineral1.getText().toString().equals("") && txt_massa_especifica_aditivo_mineral2.getText().toString().equals("") && txt_teor_aditivo_mineral2.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha ao menos um aditivo mineral.");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //ADITIVO MINERAL - VERIFICAÇÃO 2

        //MASSA ESPECIFICA DO ADITIVO MINERAL 1 VAZIA E TEOR PREENCHIDO
    } else if (txt_massa_especifica_aditivo_mineral1.getText().toString().equals("") && (txt_teor_aditivo_mineral1.length() != 0)) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor de aditivo mineral 1.");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //ADITIVO MINERAL - VERIFICAÇÃO 3

        //MASSA ESPECIFICA DO ADITIVO MINERAL 1 PREENCHIDA E TEOR VAZIO
    } else if (txt_massa_especifica_aditivo_mineral1.length() != 0 && (txt_teor_aditivo_mineral1.getText().toString().equals(""))) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor a ser utilizado do aditivo mineral 1.");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //ADITIVO MINERAL - VERIFICAÇÃO 4

        //MASSA ESPECIFICA DO ADITIVO MINERAL 2 VAZIA E TEOR PREENCHIDO
    } else if (txt_massa_especifica_aditivo_mineral2.getText().toString().equals("") && (txt_teor_aditivo_mineral2.length() != 0)) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor de aditivo mineral 2.");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //ADITIVO MINERAL - VERIFICAÇÃO 5

        //MASSA ESPECIFICA DO ADITIVO MINERAL 2 PREENCHIDA E TEOR VAZIO
    } else if (txt_massa_especifica_aditivo_mineral2.length() != 0 && (txt_teor_aditivo_mineral2.getText().toString().equals(""))) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a massa específica do aditivo mineral 1.");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //MASSA ESPECIFICA SSS DA BRITA

    } else if (txt_massa_especifica_sss_brita.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a massa especifica sss da brita");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //TEOR AGUA NA BRITA

    } else if (txt_teor_agua_brita.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor de água que consta na brita");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //ABSORCAO AGUA NA BRITA

    } else if (txt_absorcao_agua_brita.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a absorção de água da brita");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();


        //MASSA ESPECIFICA SSS NA AREIA

    } else if (txt_massa_especifica_sss_areia.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a massa especifica SSS da areia");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //TEOR ÁGUA NA AREIA

    } else if (txt_teor_agua_areia.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor de água que consta na areia");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //ABSORCAO AGUA NA AREIA

    } else if (txt_absorcao_agua_areia.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a absorção de água da areia");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //MASSA ESPECIFICA ADITIVO

    } else if (txt_massa_especifica_aditivo_quimico.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha a massa especifica do aditivo quimico");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //PONTO SATURACAO ADITIVO

    } else if (txt_ponto_Saturacao.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o ponto de saturação do aditivo quimico");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //TEOR DE SOLIDOS

    } else if (txt_teor_solidos.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor de sólidos do aditivo químico");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //AR INCORPORADO

    } else if (txt_ar_incorporado.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor de ar incorporado no concreto");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();


        //---------------------------------------------------------------------------------------------------------------------


        //SE O MÉTODO DE AITCIN FOI SELECIONADO, VERIFICA SE A RESISTENCIA ESTÁ DENTRO DOS LIMITES

    } else if (check_aitcin.isChecked()) {

        double converte_resistencia = Double.parseDouble(txt_resistencia_concreto.getText().toString());

        if (converte_resistencia < 40 || converte_resistencia > 160) {

            //Cria o gerador do AlertDialog
            AlertDialog.Builder builder = new AlertDialog.Builder(this);

            //define o titulo

            builder.setTitle("Resistência do Concreto");

            //define a mensagem
            builder.setMessage("O método de Aitcin é limitado para resistencias entre 40 e 160 MPA.");

            //define um botão como positivo
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                }
            });

            AlertDialog alert = builder.create();
            alert.show();

        }


        //SE O MÉTODO DE MEHTA FOI SELECIONADO, VERIFICA SE A RESISTENCIA ESTÁ DENTRO DOS LIMITES

    } else if (check_mehta.isChecked()) {

        double converte_resistencia = Double.parseDouble(txt_resistencia_concreto.getText().toString());

        if (converte_resistencia < 60 || converte_resistencia > 120) {

            //Cria o gerador do AlertDialog
            AlertDialog.Builder builder = new AlertDialog.Builder(this);

            //define o titulo

            builder.setTitle("Resistência do Concreto");

            //define a mensagem
            builder.setMessage("O método de Mehta - Aitcin é limitado para resistencias entre 60 e 120 MPA. ");

            //define um botão como positivo
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                }
            });

            AlertDialog alert = builder.create();
            alert.show();

        }

        //TEOR DE ADITIVO QUIMICO

    } else if (check_mehta.isChecked() && txt_teor_aditivo.getText().toString().equals("")) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Campos em branco");

        //define a mensagem
        builder.setMessage("Preencha o teor de aditivo químico");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

        //SE METODO DE AITCIN FOI SELECIONADO,

    } else {

       Intent it = new Intent (this, Resultado_Aitcin.class);

        startActivity(it);

    }

}
  • 1

    Ana, if the Intent should always be created, (quoted in: "After Cod checks the Edittext’s, it should enter the ELSE"), then Else should not exist, it would only put what is within the Else at the end of the method. For when one of these conditions of if or ìf Else` are true, the others are not even checked. I think that’s the problem

  • Well, I did exactly what Voce suggested and the app just closes. Still, it’s disregarding that the user will insist on the error.

1 answer

0


 public void onClick (View View) {

// RESISTENCIA DO CONCRETO

    if (txt_resistencia_concreto.getText().toString().equals("")) // O que faltava era o toString()
        showError("Campos em branco", "Preencha a resistência do concreto");

    else if (txt_massa_especifica_cimento.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha a massa específica do cimento");

    else if (txt_massa_especifica_aditivo_mineral1.getText().toString().equals("") && txt_teor_aditivo_mineral1.getText().toString().equals("") && txt_massa_especifica_aditivo_mineral2.getText().toString().equals("") && txt_teor_aditivo_mineral2.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha ao menos um aditivo mineral.");

    else if (txt_massa_especifica_aditivo_mineral1.getText().toString().equals("") && (txt_teor_aditivo_mineral1.length() != 0)) 
        showError("Campos em branco", "Preencha o teor de aditivo mineral 1.");

    else if (txt_massa_especifica_aditivo_mineral1.length() != 0 && (txt_teor_aditivo_mineral1.getText().toString().equals(""))) 
        showError("Campos em branco", "Preencha o teor de aditivo mineral 2.");

    else if (txt_massa_especifica_aditivo_mineral2.getText().toString().equals("") && (txt_teor_aditivo_mineral2.length() != 0)) 
        showError("Campos em branco", "Preencha o teor de aditivo mineral 2.");

    else if (txt_massa_especifica_aditivo_mineral2.length() != 0 && (txt_teor_aditivo_mineral2.getText().toString().equals("")))
        showError("Campos em branco", "Preencha a massa específica do aditivo mineral 1.");

    else if (txt_massa_especifica_sss_brita.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha a massa especifica sss da brita");

    else if (txt_teor_agua_brita.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha o teor de água que consta na brita");

    else if (txt_absorcao_agua_brita.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha a absorção de água da brita");

    else if (txt_massa_especifica_sss_areia.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha a massa especifica SSS da areia");

    else if (txt_teor_agua_areia.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha o teor de água que consta na areia");

    else if (txt_absorcao_agua_areia.getText().toString().equals("")) 
        showError("Campos em branco", "Preencha a absorção de água da areia");

    else if (txt_massa_especifica_aditivo_quimico.getText().toString().equals(""))
        showError("Campos em branco", "Preencha a massa especifica do aditivo quimico");

    else if (txt_ponto_Saturacao.getText().toString().equals(""))   
        showError("Campos em branco", "Preencha o ponto de saturação do aditivo quimico");

    else if (txt_teor_solidos.getText().toString().equals(""))      
        showError("Campos em branco", "Preencha o teor de sólidos de aditivos quimicos");

    else if (txt_ar_incorporado.getText().toString().equals(""))    
        showError("Campos em branco", "Preencha o teor de ar incorporado no concreto");

    else {
        if (check_aitcin.isChecked()) {
            double converte_resistencia =  Double.parseDouble(txt_resistencia_concreto.getText().toString());
            if (converte_resistencia < 40 || converte_resistencia > 160) {

            }
        } else if (check_mehta.isChecked()) {
            double converte_resistencia =  Double.parseDouble(txt_resistencia_concreto.getText().toString());
            if (converte_resistencia < 60 || converte_resistencia > 120) {

            }
        }
       startActivity(new Intent(this, Resultado_Aitcin.class));
    }

}

private void showError(String title, String err){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setTitle(title);
    builder.setMessage(err);

    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
        }
    });

    AlertDialog alert = builder.create();
    alert.show();
}

I remade your code and I believe that the problem has been solved, I also removed some unnecessary things that could be reused. The code looks cleaner to me.

From what I saw, the problem seemed to be in that code snippet:

else if (check_mehta.isChecked()) {

    double converte_resistencia = Double.parseDouble(txt_resistencia_concreto.getText().toString());

    if (converte_resistencia < 60 || converte_resistencia > 120) {

        //Cria o gerador do AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //define o titulo

        builder.setTitle("Resistência do Concreto");

        //define a mensagem
        builder.setMessage("O método de Mehta - Aitcin é limitado para resistencias entre 60 e 120 MPA. ");

        //define um botão como positivo
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        });

        AlertDialog alert = builder.create();
        alert.show();

    }

    //TEOR DE ADITIVO QUIMICO

} else if (check_mehta.isChecked() && txt_teor_aditivo.getText().toString().equals("")) {

    //Cria o gerador do AlertDialog
    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    //define o titulo

    builder.setTitle("Campos em branco");

    //define a mensagem
    builder.setMessage("Preencha o teor de aditivo químico");

    //define um botão como positivo
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
        }
    });

    AlertDialog alert = builder.create();
    alert.show();

    //SE METODO DE AITCIN FOI SELECIONADO,

} else {

   Intent it = new Intent (this, Resultado_Aitcin.class);

    startActivity(it);

}

See that in your code above you have created a condition for IF one of your checkbox have been marked, it re-analyzes the condition and checks if a specific value has been entered. I moved this check to the else, 'cause you’re only getting into else if all the EditText are filled in, meaning you do not need to check if there is any blank again, which was done by you, and then, if nothing is blank, executes an action, but this was not done, so it’s not enough in the ELSE.

  • Dude!!!! Thank you so much!!!!! It worked!!!!! Thank you so much!!!! I was already neurotic about it!!!!

  • Nice of you to help! :)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.