W < string-tablicy name = „wersjach”> Mam tę bestię wpisu (gotowany w dół do rozsądnego minimum, aby odtworzyć efekt):Ucieczka wiele „%” znaków w Androidzie
<item>100% foo 40%bar</item>
który generuje następujące błędy:
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
Dodanie sformatowanego = "fałsz" niczego nie zmienia.
<item>100% foo 40%bar</item>
powoduje wyświetlenie tych samych komunikatów o błędach. WTH?
<item>100% foo 40bar</item>
<item>100 foo 40%bar</item>
<item>100% foo 40%</item>
wszystko działałoby dobrze. Uciekanie z \% jest po prostu ignorowane powodując ten sam błąd. %% nie powoduje błędu, ale otrzymuję %%.
http://stackoverflow.com/questions/4414389/android-xml-percent-symbol/4417333#4417333, większość tego, co mówisz, nie zadziała, ale zobacz ostatnią opcję. –
Niż za odpowiedź. Niestety nie mam do czynienia z łańcuchem, który mógłby w ogóle umożliwić zamianę, chyba że istnieje sposób na dokonywanie podstawień w tablicach. W moim pliku arrays.xml znajduje się tablica znaków z elementami. Te ładuję za pomocą getResources(). GetStringArray (R.array.versions); – Giszmo
ouch, getStringArray używa formatyzatora, ale nie pozwala przekazywać argumentów formatujących. Obawiam się, że będziesz musiał odtworzyć tablicę po jej załadowaniu, podstawianiu w% lub poprawieniu ciągów podczas ich używania. –