2016-07-05 10 views
-4

Ich bin sehr neu in Android und nur auf dem Sprung hauptsächlich aus Tutorial Videos zu lernen. Ich habe ein Problem, bei dem eine schwerwiegende Ausnahme auftritt, wenn ich versuche, die App auszuführen. Ich glaube, der Teil des Codes, der den Fehler erzeugt, ist unten, ich habe ein Char-Array von Buchstaben, die ich versuche zu scramblen und dann den Text bestimmter Knöpfe auf diese Buchstaben zu setzen (zB letter1A.setText (scrambleLettersChar [0]) dem Code hat die gleiche Sache über diesem Teil und es funktionierte gut. TIA.Ich bekomme eine Fatal Exception: Main

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

'Ich glaube, der Teil ...' - anstatt zu erraten, lesen Sie einfach t er stacktrace von Ihrem Unfall, der auf genauen Grund des Absturzes und des Übeltäters in Ihrem Code zeigen sollte –

+1

Sie konnten den stacktrace auch in Ihre Frage einschließen, also müssen nicht erraten. – azurefrog

Antwort

0

solutionLetters ist der Grund. Ihr Versuch, ein Element in der solutionLetters Array zuzugreifen, die außerhalb der Grenzen ist.

Verwenden Sie randInt(0, solutionLetters.size()-1 anstelle von (int) (Math.random() * solutionLetters.length);

Rough-Code, in f Bitte posten Sie Ihre Stack-Trace.

1

Der Fehler in dieser Zeile:

letter1A.setText(scrambleLettersChar[0]); 

Ändern Sie diese an:

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

Der Grund dafür ist, wenn Sie setText aufrufen ... setText (int RESID) wird aufgerufen statt setText (CharSequence)

+0

Das hat funktioniert und macht Sinn, danke für die Hilfe. – rnbd2c

+0

Wenn es geholfen hat, bitte die Antwort als richtig markieren. es kann anderen helfen. –

Verwandte Themen