2010-08-31 8 views
11

Android permette di creare alias di stringhe di risorse come:È possibile combinare stringhe di risorse Android in nuove stringhe?

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

con il quale la risorsa "bar" diventa un alias per la risorsa di nome "foo".

quello che vorrei per la mia app è una possibilità di combinare un prefisso risorsa esistente con suffissi diversi, vale a dire di estendere le cose come:

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

in cui la risorsa "bar" produrrebbe la "foobar" stringa. È chiaro che '+' non funziona qui, ma c'è qualche altra opzione per ottenere una tale concatenazione di stringhe, in modo che si possa definire un gruppo di risorse stringa con un prefisso comune?

Mi rendo conto ovviamente che potrei fare una concatenazione di queste stringhe di risorse in fase di esecuzione ma definirle staticamente nelle risorse sembrerebbe molto più elegante e semplice.

Michael

risposta

15

No, non è possibile. Si può semplicemente utilizzare <string name="bar">This is my %s</string> e quindi utilizzare String.format() nella vostra applicazione per compilare la variabile con ad esempio

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

La stringa provocato dalla combinazione di quei 2 saranno 'String.Format (getResources(). GetString (R. string.bar), getResources(). getString (R.string.foo)) ' – Paul

Problemi correlati