Android - 拒绝空输入问题

时间:2011-01-26 23:29:07

标签: android validation input filter mask

我目前正在尝试让我的代码拒绝空(空)输入,每次我没有为崩溃的值输入任何内容,但是告诉它拒绝“0”工作(如果代码的一部分,则在else中看到) )。

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

非常感谢帮助!

1 个答案:

答案 0 :(得分:1)

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

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

问题是toString()如何导致null?您的代码在正确的轨道上,因为一点挖掘表明.getText()永远不会返回null(它总是CharSequence)。检查的右侧应该检查空字符串。 E.g:

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