2017-12-06 8 views
-1

Ich habe ein paar Strings, die in die android-Werte/strings.xml-Datei in meinem Android-Projekt gelegt wurden.

<resources> 
    <string name="level_reached_label">Level Reached: </string> 
    <string name="endgame_textP1">You have scored </string> 
    <string name="endgame_textP2"> points in </string> 
    <string name="endgame_textP3"> seconds </string> 
</resources> 

Ich nenne die Saiten mit dieser Linie in einem meiner Java-Klassen

endLevelLabel.setText(R.string.level_reached_label + level); 
endInfoLabel.setText(R.string.endgame_textP1 + score + R.string.endgame_textP2 + gameTime + R.string.endgame_textP3); 

Die erste Zeile läuft gut, aber die zweite Zeile gibt diesen Fehler (das Programm arbeitet mit der zweiten Zeile auf Kommentar) :

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.web.mathtaketwo/com.web.mathtaketwo.EndGame}: android.content.res.Resources$NotFoundException: String resource ID #0x7d1500be 

Was habe ich falsch gemacht, dass diese Zeichenfolge nicht funktioniert? Ist es, weil ich versuche, mehrere Zeichenfolgen in 1 Linie kombiniert mit Variablen zu verwenden? Warum lädt der andere String?

Anmerkung: die beiden Objekte, das Set wird, sind TextView ‚s:

TextView endInfoLabel = (TextView)findViewById(R.id.endInfoLabel); 
TextView endLevelLabel = (TextView)findViewById(R.id.endLevelLabel); 
+2

R.string.endgame_textP1 ist kein String aber – Selvin

Antwort

0

Okay, so dass im Grunde das Problem R.string.xxx Rendite ist nur die ID eines Strings.

Dies führt zu vielen Problemen, wenn ich versuche, IDs (Ganzzahlen) in meine Zeichenfolge einzufügen.

Stattdessen, was ich getan haben sollte war die getString() Funktion verwenden, die die Zeichenfolge an der id zurückgibt angegeben:

getString(R.string.xxxx) 

Wenn ich meinen Code getString() mit ändern:

endLevelLabel.setText(getString(R.string.level_reached_label) + (level)); 
endInfoLabel.setText(getString(R.string.endgame_textP1) + score + getString(R.string.endgame_textP2) + gameTime + getString(R.string.endgame_textP3)); 

Dann funktioniert es richtig . Weitere Einzelheiten zu diesen anderen Themen sehen, die ich angeschaut:

Reading value from string resource

String Resources

Get string from resource

+0

Oder noch besser int: verwenden getString mit Format – Selvin

Verwandte Themen