Vorrei sapere se c'è un modo per inserire/iniettare un elemento <string>
definito in un file XML in un altro elemento <string>
, facendo ciò solo con XML.Android: come iniettare un elemento <string> in un altro elemento <string> in XML?
Per esempio avrei potuto avere:
<string name="author">Francesco</string>`
e sto cercando qualcosa di simile:
<string name="about_application">Author: @string/author</string>`
in modo che getString(R.string.about_application)
si tradurrebbe in "Autore: Francesco".
So che avrei potuto combinare i due elementi nel codice Java utilizzando String.format(string, formatArgs)
come ad esempio:
<string name="author">Francesco</string>
<string name="about_application">Author: %1$s</string>`
e allora in uso codice
String.format(getString(R.string.about_application), getString(R.string.author))
ma mi piacerebbe farlo in XML direttamente.
Qualcuno può suggerirmi un modo per farlo?
Grazie! Funziona bene quando faccio riferimento a un'entità interna da un elemento xml nello stesso file, mentre ho problemi a fare riferimento a un'entità esterna definita in un altro file xml. Ad ogni modo, non sono sicuro che questo tipo di meccanismo debba essere usato con i file Android/res/values / xml, penso che sia un po 'lontano dal modo "standard" di Android per gestirli. –
Questo è come un indirezione sopra l'indecisione :-). Il problema potrebbe essere che quando si esegue la conversione di string.xml (copie in altre cartelle), si dimentica di localizzare &auth;. Inoltre, ogni traduzione ha ancora bisogno di tutti i tag delle stringhe contenenti &auth;. Ma sì, questo è il migliore possibile perché deve essere statico (quindi i file xml possono essere resi binari). – pjv