-1
    @Override
    public void onClick(View v)

    {
        float Percentage, newPercentage = 0;
        int Number;
        EditText Total = (EditText) findViewById(R.id.editText3);
        EditText Done = (EditText) findViewById(R.id.editText4);

        float num1 = Float.parseFloat(Total.getText().toString());
        float num2 = Float.parseFloat(Done.getText().toString());




        Percentage = (num2 / num1) * 100;
}
}

Above is my code, when I leave any one of them empty, it crashes.How to get over it.

6 Answers6

1

Just check whether user has entered anything or not and then parse your value:

if(!Total.getText().toString().matches(""))
    float num1 = Float.parseFloat(Total.getText().toString());
Kamesh
  • 1,122
  • 9
  • 12
0

try this

  button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
if(!Total.getText().toString().trim().equals("")&&!Done.getText().toString().trim().equals("")){
                 float num1 = Float.parseFloat(Total.getText().toString());
                float num2 = Float.parseFloat(Done.getText().toString());

             Percentage = (num2 / num1) * 100;}
            }
        });
ND1010_
  • 3,743
  • 24
  • 41
0

You can apply condition if EditText is not empty then your code is run like that

            float Percentage, newPercentage = 0;
            int Number;
            EditText Total = (EditText) findViewById(R.id.editText3);
            EditText Done = (EditText) findViewById(R.id.editText4);

            String total=Total.getText().toString();
            String done=Done.getText().toString();

            if (!total.isEmpty() && !done.isEmpty()) {

                float num1 = Float.parseFloat(Total.getText().toString());
                float num2 = Float.parseFloat(Done.getText().toString());


                Percentage = (num2 / num1) * 100;
            }else {
                Toast.makeText(OpenFile.this, "Fill values", Toast.LENGTH_SHORT).show();
            }
Shivam Sharma
  • 290
  • 2
  • 14
0

Try Using Try...Catch

 float num1 = 0.00f;
 float num2 = 0.00f;

try {
   num1 = Float.parseFloat(Total.getText().toString());
   num2 = Float.parseFloat(Done.getText().toString());
   Percentage = (num2 / num1) * 100;
}
catch(NumberFormatException ex) {
    //Handle Non Float Exception
   Toast.makeText(getApplicationContext(), "Invalid input !",Toast.LENGTH_LONG).show();
}
Beep.exe
  • 1,368
  • 12
  • 21
0

Firstly Check whether you find editText properly or not After that also check isEmpty condition for avoiding NullPointer Exception

if (!editText1.getText().toString().isEmpty() && !editText2.getText().toString().isEmpty()){
    float num1 = Float.parseFloat(Total.getText().toString());
    float num2 = Float.parseFloat(Done.getText().toString());
}
pawan kasar
  • 170
  • 1
  • 6
0

check for empty text, if not empty than perform calculation

  if(!Total.getText().toString().isEmpty() && !Done.getText().toString().isEmpty()){
                 float num1 = Float.parseFloat(Total.getText().toString());
                float num2 = Float.parseFloat(Done.getText().toString());

             Percentage = (num2 / num1) * 100;}
            }
        });
Harshal Shah
  • 427
  • 3
  • 5