我目前正在尝试让我的代码拒绝空(空)输入,每次我没有为崩溃的值输入任何内容,但是告诉它拒绝“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());
}
非常感谢帮助!
答案 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("");