In < stringa-array name = "versioni"> Ho questa bestia di una voce (ridotte a un minimo ragionevole di riprodurre l'effetto):fuga più caratteri “%” in Android
<item>100% foo 40%bar</item>
che produce questi errori:
Multiple annotations found at this line:
- error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
- error: Found tag </item> where </string-array> is expected
Aggiunta formattato = "false" non cambia nulla.
<item>100% foo 40%bar</item>
restituiscono gli stessi messaggi di errore. WTH?
<item>100% foo 40bar</item>
<item>100 foo 40%bar</item>
<item>100% foo 40%</item>
funzionerebbero tutti bene. Escaping con \% viene semplicemente ignorato con lo stesso errore. %% non genera un errore ma ottengo %%.
http://stackoverflow.com/questions/4414389/android-xml-percent-symbol/4417333#4417333, la maggior parte di ciò che dici non funziona, ma vedi l'ultima opzione. –
Grazie per la risposta. Sfortunatamente non ho a che fare con una stringa che potrebbe consentire la sostituzione a meno che non ci sia un modo per fare sostituzioni negli array. Nel mio array.xml c'è un array di stringhe con elementi. Questi li carico tramite getResources(). GetStringArray (R.array.versions); – Giszmo
ouch, getStringArray utilizza il formattatore e tuttavia non consente di passare argomenti di formato. Temo che dovrai ricreare l'array dopo averlo caricato, sostituendo il%, oppure correggere le stringhe mentre le usi. –