R.string.(variable) geht das

Joob

Top Contributor
Hallo,

ich benutze php-Scripte und gebe Erfolgsmeldungen zurück.
Diese zeige ich im Toast an.
Nun möchte ich die string.xml verwenden um Sprachenunabhängig zu sein.
Also gebe ich vom PHP die Stringbezeichnung zurück die in der strings.xml steht.
Leider weiß ich nicht wie ich da einen String verarbeiten soll.
Beispiel:
php sendet "phpnewMemOK"
in string.xml steht <string name="phpnewMemOK">Neues Mitglied angelegt</string>
Im Toast getString(R.string.phpnewMemOk)
den Teil phpnewMemOK bekomme ich als Variable aus

also ist die Frage : Wie geht getString(R.string.[stringvariableausphp])
 
Das kannst du in der Tat recht einfach umsetzen:

Java:
// holen der ID über die getIdentifier() Methode
int id = getResources().getIdentifier(stringvariableausphp, "string", getPackageName());
String value = getString(id);

// hier muss natürlich entsprechend dem Wert geschaut werden ob in id überhaupt was drinne steht :)

Erklärung:
getIdentifier(String name, String defType, String package);
name: Name der Resource
defType: typ.. also ob R.string, R.layout, R.color etc..
package: das Package eben.

Gruß
Robert
 
Erst mal schönen Dank, das haut hin.
Allerdings wo finde ich die ID, in der String.xml steht sie nicht und die Zahl sagt mir auch nichts.
Was ist die ID ?
 
Die ID ist zum Beispiel: R.string.meineStringVariable.

Weil du ja den genauen Pfad nicht kennst sondern nur weißt wie die Variable heißt musst die dir die ID "zusammenbauen".
Das kannst du mit der o.g. Methode.

Mittels der getString() Methode kannst du dir dann aus der Strings.xml über die id den Wert holen.

Gruß
Robert
 

Zurück
Oben