2014-01-19 28 views
0

的Android的logcat告訴我,一個ArrayIndexOutOfBoundsException是我在程序的某一點thown輸出:我在我的代碼得到一個ArrayIndexOutOfBoundsException

我已成立了按鈕前面一個布爾值,該按鈕用於測試目的。

這是信主的錯誤位於代碼:

int hour = new Date().getHours(); 
int min = new Date().getMinutes(); 
int secs = new Date().getSeconds(); 
String date = hour + ":" + min+ ":" + secs; 

b.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     bSet = true;  
    } 
}); 

while (date =="01:00:00" || bSet == true); 
int randomNumber = rand.nextInt(); 
tv.setText(getResources().getString(ids[randomNumber])); 
+0

使用'String.equals'比較字符串 – Reimeus

+0

使用'INT randomNumber =蘭特。 nextInt(ids.length);' –

回答

1

爲了更好的做法,改變

while (date =="01:00:00" || bSet == true); 

while (date.equals("01:00:00") || bSet) 

,並更改int randomNumber = rand.nextInt();

作爲int randomNumber = rand.nextInt(ids.length);

+0

我以爲.length被用來尋找一個隨機的長度,但我有很多字符串,我想選擇一個隨機的字符串來顯示,我仍然應該使用.length? – user3165683

+0

簡單的答案是肯定的。 –

+0

@ user3165683確保... –

2

我認爲你必須在最後一行例外。 這裏確切ids[randomNumber]

你應該檢查隨機生成的數字,因爲它可以大於ids.length。 使用rand.nextInt(ids.length);它會生成從0到ids.length的隨機數。

+2

_「它將生成從0到ids.length的隨機數。」_號Fr om 0到ids.length-1。 –

相關問題