getString mit Übergabewert?

  • Antworten:3
Ben Becker
  • Forum-Beiträge: 209

03.05.2012, 20:26:14 via Website

Hiho!
ich nutze zur lokalisierung die XML Dateien. Jetzt habe ich das Problem, dass aus der Datenbank Werte übergeben werden und diese aber nicht in der richtigen Sprache sind. Jetzt wollte ich über die XML die Lokalisierung machen, aber mit der Methode getString geht es ja nicht, da muss ich ja ein Int übergeben. Wie kann ich denn den Wert abrufen?
Ich habe zum Beispiel Deutschland und dann in der lokalisierten Version soll Germany stehen. Wenn ich getString(R.string.Deutschland) mache geht es, aber wie mache ich das, dass es auch mit getString("Deutschland") geht?

Antworten
Max Muth
  • Forum-Beiträge: 609

03.05.2012, 21:02:57 via Website

Ich verstehe nicht so ganz, was du meinst.

Android ruft automatisch die strings.xml aus dem Ordner values auf. (Dementsprechend wird diese "Sprache" angezeigt).

Möchtest du jetzt zB. neben Deutsch auch eine Englische Version machen, machst du parallel zu values den Ordner values-en mit einer zweiten strings.xml (mit Englischen Strings) darinnen.
Diese wird dann geladen, sofern die Systemsprache des Handys Englisch ist. (Bei allen anderen Sprachen wird der Standard Ordner geladen, sprich die Deutsche Version)

Aufrufen kannst du die Strings dann in mit getString(R.string.name).

Ich hoffe, ich konnte dir helfen!

Greets,
Max

— geändert am 03.05.2012, 21:03:51

Du hast eine FRITZ!Box ? Dann könnten dich meine Apps evtl. interessieren! https://play.google.com/store/apps/developer?id=Maximilian+Muth

Antworten
Ben Becker
  • Forum-Beiträge: 209

03.05.2012, 21:06:36 via Website

context.getString(activity.getResources().getIdentifier(variable,"string", context.getPackageName()))

So habe ich es jetzt gelöst und es geht. Wusste nicht genau wie ich es ausdrücken soll. Aber danke für deine Hilfe.

Antworten