2017-06-20 9 views
-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; 
} 
} 

Oben ist mein Code, wenn ich einen von ihnen leer lasse, es stürzt ab.Wie man darüber hinwegkommt.Meine Android App stürzt wegen zwei leeren edittext Felder ab

+0

posten Sie Ihren vollständigen Code – sasikumar

+0

Sie sollten mit NumberParseException umgehen, in Ihrem Fall, wenn Sie eine leere Zeichenfolge an die Funktion parseFloat() übergeben, besteht die Chance für eine Ausnahme. – EKN

+0

Ja, es funktionierte mit NumberFormatException. –

Antwort

0

Versuchen 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(); 
} 
+0

Ja, es hat für mich funktioniert. –

1

einfach überprüfen, ob Benutzer etwas oder nicht, und dann analysieren Ihren Wert eingegeben hat:

if(!Total.getText().toString().matches("")) 
    float num1 = Float.parseFloat(Total.getText().toString()); 
0

versuchen diese

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;} 
      } 
     }); 
0

Sie Ihren Code wie dann ausgeführt wird Bedingung gelten, wenn EditText nicht leer ist, kann Mit dass

  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(); 
      } 
0

Zunächst prüfen, ob Sie editText richtig oder nicht Nach dieser auch prüfen isEmpty Bedingung zur Vermeidung von 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()); 
} 
0

Check für leeren Text finden, wenn nicht leer als Berechnung durchführen

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;} 
 
      } 
 
     });

Verwandte Themen