2016-07-05 67 views
-4

我對android非常陌生,並且只是在教程視頻中進行學習。我遇到了一個問題,當我嘗試運行該應用程序時,出現致命異常。我相信產生錯誤的代碼的一部分在下面,我有一個字符數組,我試圖爭奪,然後將某些按鈕的文本設置爲這些字母(即letter1A.setText(scrambleLettersChar [0])。做同樣的事情,代碼的這個部分的上方和它的工作就好了。TIA。我遇到了一個致命的異常:主要是

char[] solutionLetters = {letter1, letter2, letter3, letter4, letter5, letter6, letter7, letter8, letter9, letter10, letter11, letter12}; 

       for (int i = 0; i < solutionLetters.length; i++) { 
        int randomIndex = (int) (Math.random() * solutionLetters.length); 
        char temp = solutionLetters[i]; 
        solutionLetters[i] = solutionLetters[randomIndex]; 
        solutionLetters[randomIndex] = temp; 

       } 
       String scrambleLettersString = new String(solutionLetters); 
       scrambleLettersChar = scrambleLettersString.toCharArray(); 

       letter1A.setText(scrambleLettersChar[0]); 


      } 
+3

'我相信這部分......' - 而不是猜測,只是讀取t他從你的崩潰中追蹤,這將指出你的代碼崩潰和罪魁禍首的確切原因 –

+1

你也可以在你的問題中包含堆棧跟蹤,所以不必猜測。 – azurefrog

回答

0

solutionLetters就是這個原因。你嘗試solutionLetters陣列是出界的訪問項目。

使用randInt(0, solutionLetters.size()-1代替(int) (Math.random() * solutionLetters.length);

粗碼,在f請張貼你的堆棧跟蹤。

1

在此行中的錯誤:

letter1A.setText(scrambleLettersChar[0]); 

更改爲:

letter1A.setText(scrambleLettersChar[0] + ""); 

的原因是,當你調用的setText ...的setText(INT渣油)被調用 代替setText(CharSequence)

+0

工作和意義,感謝您的幫助。 – rnbd2c

+0

如果有幫助,請將答案標爲正確。它可能會幫助其他人。 –

相關問題