2014-07-04 70 views
0

長話短說,我的基本應用只有一個textview,2x edittexts(用於最小值,最大值的隨機數)和一個按鈕。如果提交的最小值和最大值都可以,但是當我留下空的應用程序崩潰(當然,它應該會崩潰),但是當我嘗試添加一些if來避免這種情況,但它並沒有真正起作用。 在崩潰認爲我的代碼片段發生:當EditTexts爲空時,Android簡單隨機數生成器崩潰

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

不要用空String..there檢查可能的機會,進入更多的空間,這導致你扔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

我認爲你缺少「!」在這裏:

//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()); 
}