The app crashes every time I click the calculate button

Asked

Viewed 59 times

1

It is an application to calculate IMC, save the data and display them in another interface. However, when I click the button to perform the calculation and display, the program crasha. Other classes only serve to maintain the Sqlite database.

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        Button botao = (Button) findViewById(R.id.btnCalcular);
        final TextView txtIdade = (TextView) findViewById(R.id.txtIdade);
        final int[] skIdadeNewValue = {0};
        SeekBar skIdade = (SeekBar) findViewById(R.id.skIdade);
        skIdade.setOnSeekBarChangeListener(new
                                                   SeekBar.OnSeekBarChangeListener() {
                                                       public void onProgressChanged(SeekBar seekBar, int progress,
                                                                                     boolean fromUser) {
                                                           skIdadeNewValue[0] = progress;
                                                       }

                                                       @Override
                                                       public void onStartTrackingTouch(SeekBar seekBar) {
                                                       }

                                                       @Override
                                                       public void onStopTrackingTouch(SeekBar seekBar) {
                                                           Toast.makeText(MainActivity.this, "Idade é = " +
                                                                           skIdadeNewValue[0],
                                                                   Toast.LENGTH_SHORT).show();
                                                           txtIdade.setText("Idade = " + skIdadeNewValue[0]);
                                                       }
                                                   });

        botao.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                PessoaCtr crud = new PessoaCtr(getBaseContext());
                RadioButton edtSexo = null;
                String estudante = null;
                String idoso = null;
                String empregado = null;
                String sexo = null;
                CheckBox chkEstudante;
                CheckBox chkEmpregado;
                CheckBox chkIdoso;
                RadioButton rbMasc;
                RadioButton rbFem;
                ToggleButton tgConfirma;
                EditText result;
                chkEstudante = (CheckBox) findViewById(R.id.chkEstudante);
                chkEmpregado = (CheckBox) findViewById(R.id.chkEmpregado);
                chkIdoso = (CheckBox) findViewById(R.id.chkIdoso);
                rbMasc = (RadioButton) findViewById(R.id.rbMasc);
                rbFem = (RadioButton) findViewById(R.id.rbFem);
                tgConfirma = (ToggleButton) findViewById(R.id.tgConfirma);
                if (chkEstudante.isChecked() == true) {
                    Toast.makeText(getBaseContext(), "Estudante foi selecionado", Toast.LENGTH_SHORT).show();
                    estudante = chkEstudante.getText().toString();
                }
                if (chkEmpregado.isChecked() == true) {
                    Toast.makeText(getBaseContext(), "Empregado foi selecionado", Toast.LENGTH_SHORT).show();
                    empregado = chkEmpregado.getText().toString();
                }
                if (chkIdoso.isChecked() == true) {
                    Toast.makeText(getBaseContext(), "Idoso foi selecionado", Toast.LENGTH_SHORT).show();
                    idoso = chkIdoso.getText().toString();
                }
                if (rbMasc.isChecked() == true) {
                    Toast.makeText(getBaseContext(), "Masculino foi selecionado", Toast.LENGTH_SHORT).show();
                    edtSexo = (RadioButton) findViewById(R.id.rbMasc);
                    sexo = edtSexo.getText().toString();
                }
                if (rbFem.isChecked() == true) {
                    Toast.makeText(getBaseContext(), "Feminino foi selecionado", Toast.LENGTH_SHORT).show();
                    edtSexo = (RadioButton) findViewById(R.id.rbFem);
                    sexo = edtSexo.getText().toString();
                }
                if (tgConfirma.isChecked() == true) {
                    Toast.makeText(getBaseContext(), "Você curtiu o aplicativo", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getBaseContext(), "Você não curtiu o aplicativo", Toast.LENGTH_SHORT).show();
                }


                EditText edtNome = (EditText) findViewById(R.id.editNome);
                EditText edtPeso = (EditText) findViewById((R.id.editPeso));
                EditText edtAltura = (EditText) findViewById(R.id.editAltura);
                EditText edtImc = (EditText) findViewById(R.id.imc);
                SeekBar skIdade = (SeekBar) findViewById(R.id.skIdade);

                int idadeInt = skIdadeNewValue[0];
                int resultadoImc = Integer.parseInt(edtPeso.getText().toString()) * (Integer.parseInt(edtAltura.getText().toString())* Integer.parseInt(edtAltura.getText().toString()));
                edtImc.setText(String.valueOf(resultadoImc));

                chkEmpregado = (CheckBox) findViewById(R.id.chkEmpregado);
                chkEstudante = (CheckBox) findViewById(R.id.chkEstudante);
                chkIdoso = (CheckBox) findViewById(R.id.chkIdoso);
                String nome = edtNome.getText().toString();
                String peso = edtPeso.getText().toString();
                String altura = edtAltura.getText().toString();
                String stringidade = txtIdade.getText().toString();
                String imc = edtImc.getText().toString();
                String idade = txtIdade.toString();

                String resultado = crud.insertPessoa(nome, peso, altura, sexo, idade, estudante, idoso, empregado, imc);
                edtNome.setText("");
                edtPeso.setText("");
                edtAltura.setText("");
                edtSexo.setText("");
                txtIdade.setText("");
                chkEstudante.setText("");
                chkIdoso.setText("");
                chkEmpregado.setText("");
                edtImc.setText("");
                Toast.makeText(getApplicationContext(), resultado, Toast.LENGTH_LONG).show();
            }
        });
    }
}

I would be grateful if someone could help me, I’m starting in this area.

  • Could you share the source of the project on github? You’ve debugged to analyze on which line the problem happens?

  • You have to add in your question what appears in your logcat when you badge. There is no way to reproduce because you do not have enough code.

  • I just put the project there: https://github.com/nmp2605/androidIMC

  • Add what’s displayed in Logcat! makes it easier to help!

1 answer

0

This error has been found:

java.lang.Numberformatexception: Invalid int: "" at java.lang.Integer.invalidInt(Integer.java:138)

In that part:

int resultadoImc = Integer.parseInt(edtPeso.getText().toString()) * 
(Integer.parseInt(edtAltura.getText().toString())* 
Integer.parseInt(edtAltura.getText().toString()));

Could do that:

 int resultadoImc = 0;
 try {
       resultadoImc = Integer.parseInt(edtPeso.getText().toString()) * 
(Integer.parseInt(edtAltura.getText().toString()) * 
Integer.parseInt(edtAltura.getText().toString()));
      }
 catch (Exception e){}
  edtImc.setText(String.valueOf(resultadoImc));

Browser other questions tagged

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