2010-08-31 8 views
11

Android ermöglicht wie Aliase von Ressourcen-Strings zu erstellen:Kann man Android-Ressourcen-Strings zu neuen Strings kombinieren?

<resources> 
<string name="foo">somestring</string> 
<string name="bar">@string/foo</string> 
</resources> 

von dem die Ressource „bar“ den Namen „foo“ ein Alias ​​wird für die Ressource.

Was würde ich für meine Anwendung ist eine Möglichkeit, eine bestehende Ressource Präfix mit unterschiedlichen Suffixen zu kombinieren, das heißt, sie verlängern mag:

<resources> 
<string name="foo">foo</string> 
<string name="bar">@string/foo+bar</string> 
<string name="else">@string/foo+else</string> 
</resources> 

wo die Ressource „bar“ die Zeichenfolge „foobar“ ergeben würde. Es ist klar, dass "+" hier nicht funktioniert, aber gibt es eine andere Option, um eine solche String-Verkettung zu erreichen, so dass man eine Menge von String-Ressourcen definieren könnte, die ein gemeinsames Präfix haben?

Ich realisiere natürlich, dass ich solche Ressourcen-String-Verkettung zur Laufzeit machen könnte, aber statisch in den Ressourcen zu definieren würde so viel eleganter und einfacher erscheinen.

Michael

Antwort

15

Nein, das ist nicht möglich. Sie können nur <string name="bar">This is my %s</string> verwenden und dann String.format() in Ihrer Anwendung verwenden, in den Variablen zu füllen mit zum Beispiel

getResources().getString(R.string.foo); 
+0

Der String führte durch jene 2 kombiniert wird 'String.format (GetResources(). GetString (R. string.bar), getResources(). getString (R.string.foo)) ' – Paul

Verwandte Themen