# R.string.(variable) geht das



## Joob (4. Jan 2017)

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])


----------



## Robat (4. Jan 2017)

Das kannst du in der Tat recht einfach umsetzen:


```
// 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


----------



## Joob (8. Jan 2017)

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 ?


----------



## Robat (8. Jan 2017)

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


----------

