2 zxd 72 zxd_72 于 2013.04.28 09:49 提问

检查 EditText 是否为空而导致的程序奔溃

我使用 eclipse 和 android sdk (java) 创建了一个简单的程序,在 EditText box 中有一些限制,但是
当 EditText box 是空的时候程序就奔溃了。我用了很多方法来检查 EditText 是否为空,但是它还是不能
运行的。为什么当box是空的时候程序奔溃?

buttonHash.setOnClickListener(new View.OnClickListener(){

    public void onClick(View v){
        switch(v.getId()){
        case R.id.hash_button:
        TextView msg = (TextView)findViewById(R.id.tell);
        info = (EditText)findViewById(R.id.entry);
        anss = info.getText().toString();
        //String ans = Double.toString(res);
        double result = Double.parseDouble(anss);
        if (res == result){
        msg.setText("Correct");
        }else
        if (res != result){
            msg.setText("Incorrect");
            }else
        if (info.getText().toString().equals("")){
            msg.setText("Empty!");
            }
        }       
    }
});

5个回答

LiDaming_and
LiDaming_and   2013.04.28 13:46
已采纳

使用下面的代码来解决你的问题

public void onClick(View v) {
            if (_text.getText().toString().equals(""))
                Toast.makeText(getApplicationContext(), "Empty BOX", 5000).show();
            else
                Toast.makeText(getApplicationContext(), _text.getText().toString(), 5000).show();

        }
feifei454498130
feifei454498130   2013.04.28 11:32

double result = Double.parseDouble(anss);

如果anss为空,那肯定会报错了

liuhongwei123888
liuhongwei123888   2013.04.28 22:50


if (info.getText().toString().equals("")){
msg.setText("Empty!");
return;
}
放到double result = Double.parseDouble(anss);
前面

qq_27578023
qq_27578023   2016.05.28 22:12

double result = Double.parseDouble(anss);

如果anss为空,那肯定会报错了,还有就是当你输入的是文字的话根本无法强转,所以程序肯定会崩溃

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.07.28 09:57

应该是这句代码Double.parseDouble(anss);报的空指针异常

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!