2011-01-26 65 views
0

我目前正在试图让我的代码拒绝空(空)输入,每次我输入任何值为它崩溃,但告诉它拒绝“0”工作(如在否则如果代码的一部分)。Android - 拒绝空输入问题

boolean check_input1 = Add.this.input.getText().toString().equals(null); 
     boolean check_input2 = Add.this.input2.getText().toString().equals(null); 
     boolean check_input3 = Add.this.input3.getText().toString().equals(null); 

     float pricecheck_input2 = Float.valueOf(Add.this.input2.getText().toString().trim()).floatValue(); 
     float pricecheck_input3 = Float.valueOf(Add.this.input3.getText().toString().trim()).floatValue(); 

     if (check_input1 == true | check_input2 == true | check_input3 == true) { 
     // prepare the alert box 
       AlertDialog.Builder alertbox = new AlertDialog.Builder(Add.this); 

       // set the message to display 
       alertbox.setMessage("No fields may be blank"); 

       alertbox.show(); 
     } 
     else if (pricecheck_input2 == 0 | pricecheck_input3 == 0) { 
     // prepare the alert box 
       AlertDialog.Builder alertbox = new AlertDialog.Builder(Add.this); 

       // set the message to display 
       alertbox.setMessage("Prices must be greater than 0"); 

       alertbox.show(); 
     } 
     else { 
     new InsertDataTask().execute(Add.this.input.getText().toString(), Float.toString(abv_ppl_calculation), Add.this.input3.getText().toString()); 
     } 

帮助将不胜感激!

+0

请使用logcat显示崩溃的完整堆栈跟踪。 – 2011-01-26 23:29:51

回答

1

您需要检查您的空检查逻辑。您有:

boolean check_input1 = Add.this.input.getText().toString().equals(null); 

的问题是如何将一个toString()导致null?你的代码是正确的轨道,因为一点点挖掘显示.getText()永远不会返回null(它总是CharSequence)。您的支票的右侧应该检查空字符串。例如:

boolean check_input1 = Add.this.input.getText().toString().equals(""); 
+0

不起作用,已经尝试过。 – user576820 2011-01-27 01:06:01