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

上面是我的代码,当我离开他们中的任何一个空的时候,它崩溃了。如何克服它。我的Android应用程序崩溃,由于两个空的edittext字段

+0

发布你的完整代码 – sasikumar

+0

你应该处理NumberParseException,在你的情况下,如果你将空字符串传递给parseFloat()函数,将会有异常的机会。 – EKN

+0

是的,它使用NumberFormatException。 –

回答

0

尝试使用的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

是的,它为我工作。 –

1

只是检查用户是否已经进入任何东西,或没有,然后分析你的价值:

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

试试这个

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

您可以申请条件如果EditText上是不是空的,则你的代码是运行像这

  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

首先,检查你是否发现EDITTEXT正常与否 还检查的isEmpty条件后,以避免空指针异常

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

检查空文本,如果不是空比进行计算

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