2016-07-05 76 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

如果有帮助,请将答案标为正确。它可能会帮助其他人。 –