Frage zur String Ersetzung aus dem Anfänger Workshop mit getString()

  • Antworten:5
  • Bentwortet
Oliver Teske
  • Forum-Beiträge: 25

21.05.2013, 08:21:51 via Website

Hallo,
die alten Hasen werden jetzt wieder aufjaulen, aber ich habe da eine echte Anfänger Frage. Total doof bin ich aber nicht programmiere sehr gerne in C++ mit der Qt. Habe am Wochenende mal den Entschluss gefasst mich in die Android bzw. Java Programmierung einzuarbeiten. Ich habe da mit dem Tutoriell
https://www.nextpit.de/de/android/wiki/view/Android_Anf%C3%A4nger_Workshop
angefangen. Läuft so weit auch echt prima, nur will ich es auch verstehen. Dort wird in der Java Datei ein Platzhalter in einem String ersetzt.

Auszug aus dem Java:
String greeting = getResources().getString(resourceId, name);

Auszug aus der strings.xml
<string name="hi_greeting">Hi %s!</string>
<string name="hello_greeting">Hello %s!</string>

Durch welchen Mechanismus findet da die Ersetzung statt? Und was müsste ich machen wenn ich ein zweites %s ersetzen möchte?

Habe gestern den halben Tag dazu gegooglt, die Ergebnisse haben mich allerdings eher verwirrt als informiert. Könnte mir Jemand einen Tipp geben wo ich das nachlesen kann?????

Als Dankeschön würde ich auch versprechen, dass wenn ich es mal kann auch dumme Anfängerfragen beantworte ;-)

Gruß & Dank
Oli

— geändert am 21.05.2013, 10:16:02

Antworten
Michael H
  • Forum-Beiträge: 127

21.05.2013, 08:39:46 via Website

Hallo Oliver

Willkommen in der Welt von Android :)
Mehrere String-Platzhalter kannst du einfach über mehrere Parameter in getString() ersetzten. Das heisst z.B. getString(resourceId, "Hallo", "Welt", "!");
Ich verweise dich auch gerne auf folgende Seite, welche das Ganze ziemlich detailliert erklärt:

http://developer.android.com/guide/topics/resources/string-resource.html

Antworten
Oliver Teske
  • Forum-Beiträge: 25

21.05.2013, 08:56:23 via Website

Hallo Michael,

vielen, vielen herzlichen Dank!!!
Wie ich sehe habe ich da viel zu kompliziert gedacht und versucht.
Ich danke Dir und hoffe ich kann es mal gut machen.

Gruß
Oli

Antworten
Marcus W
  • Forum-Beiträge: 3.584

21.05.2013, 09:40:33 via App

Hallo Oliver!
Pass doch bitte noch deinen Threadtitel gemäß unseren Forenregeln an.
Jemand der vor dem selben Problem steht wie du, findet schneller zur geschriebenen Lösung, wenn er im Titel auch sehen kann worum es geht. :)
Außerdem würde er sich sicher über einen Haken freuen, also setz deinen Thread bitte auch noch direkt auf "Beantwortet", wenn soweit alles klar ist.

Danke!

Gruß,
Marcus

— geändert am 21.05.2013, 10:25:28

Antworten
Oliver Teske
  • Forum-Beiträge: 25

21.05.2013, 10:17:44 via Website

Hallo Marcus,

sorry, hast ja Recht, tut mir leid und kommt nicht mehr vor!

Gruß
Oli

Marcus W

Antworten
Oliver Teske
  • Forum-Beiträge: 25

21.05.2013, 10:32:39 via Website

So, und jetzt noch die komplette Auflösung. Hier habe ich es dank Michael gefunden:
(hier ein http...)developer.android.com/reference/android/content/Context.html#getString%28int%29
Also nicht das mit dem int als Parameter sondern das darunter. Entscheident cheint der Satz zu sein:
[...] substituting the format arguments as defined in [...]
Ich werde es zu Hause ausprobieren.
Danke an alle!

Gruß
Oli

Antworten