2 eiseno Eiseno 于 2012.12.27 14:16 提问

当编辑框中不是整数的时候避免异常

我正在做一个app,有5个编辑框,1个按钮来计算编辑框中整数的和。有的时候用户会不在编辑框中填东西,问题就是当用户不填东西的时候,异常就会挂起,我不知道应该怎么做了。这个是我的代码

try
    {
        if (qty1 != null)
        {
            int jml1 = Integer.parseInt(qty1.getText().toString());
            item1 = hrg1 * jml1;
        }
        else 
        {
            qty1.setText("0");
        }
        if (qty2 != null)
        {
            int jml2 = Integer.parseInt(qty2.getText().toString());
            item2 = hrg2 * jml2;
        }
        else 
        {
            qty2.setText("0");
        }
        if (qty3 != null)
        {
            int jml3 = Integer.parseInt(qty3.getText().toString());
            item3 = hrg3 * jml3;
        }
        else 
        {
            qty3.setText("0");
        }
        if (qty4 != null)
        {
            int jml4 = Integer.parseInt(qty4.getText().toString());
            item4 = hrg4 * jml4;
        }
        else 
        {
            qty4.setText("0");
        }
        if (qty5 != null)
        {
            int jml5 = Integer.parseInt(qty5.getText().toString());
            item5 = hrg5 * jml5;
        }
        else 
        {
            qty5.setText("0");
        }
int hasil = item1 + item2 + item3 + item4 + item5;
        Toast.makeText(getApplicationContext(), "Berhasil", Toast.LENGTH_LONG).show();
        total.setText(String.valueOf(hasil));
    }
    catch(Exception e)
    {
        Toast.makeText(getApplicationContext(), "Quantity can't be empty. Please type item quantity", Toast.LENGTH_LONG).show();
    }  

我试过了if条件语句,但是不起作用。谢谢。

2个回答

Sueyexin
Sueyexin   2012.12.28 14:25
已采纳

试试这个

if (qty1.getText().toString() != null && !(qty1.getText().toString().equals("")))
        {
            int jml1 = Integer.parseInt(qty1.getText().toString());
            item1 = hrg1 * jml1;
        }instead of, 

if (qty1 != null)
        {
            int jml1 = Integer.parseInt(qty1.getText().toString());
            item1 = hrg1 * jml1;
        }

如果你的edittext是空的话,这个条件if (qty1 != null)会进行检查,但是它不会检查里边的数据
对于所有的edittext值都重复这个就好了。

niangzhi
niangzhi   2012.12.27 14:58

如果aty1是你的edittext,那你需要从你的edittext中获取字符串来检查是不是空的。
所以将你所有的edittexts代码改成这样

if (qty1.getText().toString() != null && qty1.getText().toString().equals(""))
{
    int jml1 = Integer.parseInt(qty1.getText().toString());
    item1 = hrg1 * jml1;
}
else 
{
    qty1.setText("0");
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!