当EditTexts为空时,Android简单随机数生成器崩溃

时间:2014-07-04 11:49:49

标签: android

长话短说,我的基本应用程序只有一个textview,2x edittexts(最小值,随机数的最大值)和一个按钮。如果提交了最小值和最大值,一切都没问题,但是当我离开空应用程序崩溃时(当然它应该崩溃),但是当我尝试添加一些if以避免这种情况时,但它并没有真有帮助。 我的代码片段应该发生崩溃:

int minimumValue = 1;
int maximumValue = 2;
int randomValue = 3;
if(!minimum.getText().toString().equals("")) {
minimumValue = Integer.parseInt(minimum.getText().toString());
}
if(maximum.getText().toString().equals("")) {
maximumValue = Integer.parseInt(maximum.getText().toString());
}
randomValue = minimumValue + (int)(Math.random() * ((maximumValue - minimumValue) + 1));            
textview.setText("" + randomValue);

2 个答案:

答案 0 :(得分:2)

请勿使用空字符串进行检查。可能会输入更多空格,导致您抛出Exception

当数据不是数字时,也有可能获得NumberFormatException

所以Chage你的代码就这样试试

    if (minimum.getText().toString().trim().length() > 0) {
        try {
            minimumValue = Integer.parseInt(minimum.getText().toString());
        } catch (NumberFormatException e) {
        }
    }
    if (maximum.getText().toString().trim().length() > 0) {
        try {
            maximumValue = Integer.parseInt(maximum.getText().toString());

        } catch (NumberFormatException e) {

        }
    }

答案 1 :(得分:1)

我认为你错过了#34;!"这里:

//if empty
if(maximum.getText().toString().equals("")) {
      \\parse empty
      maximumValue = Integer.parseInt(maximum.getText().toString());
}

尝试:

\\if empty
if(!maximum.getText().toString().equals("")) {
     maximumValue = Integer.parseInt(maximum.getText().toString());
}