2016-07-05 3 views
-4

Я очень новичок в android и просто изучаю на ходу в основном из обучающих видеороликов. У меня возникла проблема, когда я получаю фатальное исключение, когда пытаюсь запустить приложение. Я считаю, что часть кода, генерирующего ошибку, ниже, у меня есть массив символов букв, который я пытаюсь скремблировать, а затем задавать текст определенных кнопок для этих букв (например, letter1A.setText (scrambleLettersChar [0]). I сделал то же самое выше этой часть коды, и он работал хорошо. ТИА.Я получаю смертельный Исключение: Главная

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

Вы также можете включить stacktrace в свой вопрос, поэтому не нужно угадывать. – azurefrog

ответ

0

solutionLetters причина. Вы пытаетесь получить доступ к элементу в solutionLetters массиве, который находится вне границ.

Использовать randInt(0, solutionLetters.size()-1 вместо (int) (Math.random() * solutionLetters.length);

Грубый код, в f uture, пожалуйста, разместите свою трассировку стека.

1

ошибка в этой строке:

letter1A.setText(scrambleLettersChar[0]); 

Изменить это:

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

Причина заключается в том, когда вы вызываете SetText ... SetText (INT RESID) вызывается вместо setText (CharSequence)

+0

Это сработало и имеет смысл, спасибо за помощь. – rnbd2c

+0

Если это помогло, пожалуйста, отметьте правильный ответ. это может помочь другим. –

Смежные вопросы