EditText留空时出错

时间:2012-06-05 17:25:35

标签: java android

任何人都可以看看下面的代码,并指出明显的错误是什么?当editText留空时,程序会出错,只有在所有信息出现后才进行计算。目前程序在文本丢失时崩溃,为什么会这样?

EditText editText1, editText2;
double numA, numB, numC;
TextView answer;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.calc);

    editText1 = (EditText) findViewById(R.id.editText1);
    editText2 = (EditText) findViewById(R.id.editText2);
}

public void btnClick(View v)
{
    if(editText1.getText().length()==0)
    {
        editText1.setError("please input text"); 
    }{
        if  (editText2.getText().length()==0)
            {
                editText2.setError("please input text");
            }

    numA = new Double(editText1.getText().toString());
    numB = new Double(editText2.getText().toString());

    numC=(numA + numB); answer.setText(Double.toString(numC));
    }
}}

4 个答案:

答案 0 :(得分:0)

将您的代码更改为:

if(TextUtils.isEmpty(editText1.getText()))
{
    editText1.setError("please input text"); 
}
if(TextUtils.isEmpty(editText2.getText()))
{
    editText2.setError("please input text"); 
}

TextUtils.isEmpty(str)做的是返回str == null || str.length() == 0

答案 1 :(得分:0)

问题在于您尝试将""解析为数字(特别是双精度数)。您正在检查空值,但即使设置了错误,您仍然在尝试解析它。您需要将new Double()语句放在try-catch块中,并捕获尝试解析无效输入时发生的异常。这样,即使用户输入的随机字符串也是不可解析的双重文件,它也是安全的。

答案 2 :(得分:0)

试试这个,

只需用这些代替你的陈述......它就可以了。

if ((editText1.getText().toString()).equals(null))


if ((editText2.getText().toString()).equals(null))

答案 3 :(得分:0)

Just Do

if(editText1.getText().toString().equals(null){//your code here}
if(editText2.getText().toString().equals(null){//your code here}