vorrei formattare un array di stringhe come android used to format strings:Formattare un array di stringhe con argomenti
Di solito lo facciamo:
strings.xml
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
In qualche codice java:
Resources res = getResources(); String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
Sto cercando qualcosa di simile:
in qualche xml arbitrario:
<string-array name="employee"> <item>name: %1$s</item> <item>post: %2$s</item> </string-array>
in qualche codice Java:
Resources res = getResources(); String[] employee = ArrayString.format(res.getStringArray(R.string.employee), name, post);
C'è un modo elegante per farlo?
EDIT:
I prossimi pezzi di codice è una soluzione e sto postando solo per aiutare @Sufian, che ha chiesto in un commento. Non è una vera risposta una volta che la mia domanda riguarda la formattazione del contenuto dell'array di stringhe e il codice a soffietto sta formattando ogni stringa separatamente.
In alcuni misc.xml:
<string-array
name="string_array">
<item>1st position: %1$d</item>
<item>2nd position: %1$d</item>
</string-array>
Poi, nel codice Java:
res = getResources();
String[] sa = res.getStringArray(R.array.string_array);
for (int i = 0; i < sa.length; i++) {
text += String.format(sa[i], i);
}
Allora, come hai fatto a risolverlo? Ho un problema simile. – Sufian
Sembra che non ci sia un modo elegante per eseguire tale formattazione. Sarà necessario iterare in ciascun elemento dell'array di stringhe e formattarlo come necessario. –
Hmm. Qualche esempio potresti condividere? Per ora sto solo selezionando Stringhe per nome usando il seguente frammento di codice e fornendo argomenti di formattazione come con le stringhe di risorse semplici. http://steven.bitsetters.com/2007/11/27/accessing-android-resources-by-name-at-runtime/ – Sufian