[英]Use Placeholder with % sign in string.xml for String.format()
我在string.xml中使用占位符%1 $ d來獲取int
值,然后我想在同一個TextView
顯示%
sign,這樣它就是%
。 所以我就這樣使用它。
<string name="uploadProgress">%1$d%<string>
現在在Java Code我就這樣使用它。
int progress = 10;
textView.setText(String.format(getString(R.string.uploadProgress), progress));
但它顯示:
java.util.UnknownFormatConversionException:轉換:
我試過:
%
而不是%
%1$d
和%
之間加一個空格%
(但我實際上並不想要空間。) 但沒有運氣。 我怎樣才能做到這一點? 我已經看了另外一些SO解決問題,但我找不到特別的問題。
我也遇到過這種情況。 有兩種方法可以轉義XML字符串資源中的文字百分比符號。
對於您的情況(帶參數的字符串,例如%1$d
),您應該使用%%
來轉義百分比符號文字。
如果您的字符串沒有參數,那么您應該使用\%
來轉義文字百分比符號。
如果在沒有參數的字符串中使用%%
,則getString()
會將其解析為文字%%
而不是轉義它。 如果在帶參數的字符串中使用\%
,則getString()
會在嘗試將該%
作為格式參數處理時崩潰。
如果您的字符串資源沒有參數,那么您可以使用formatted =“false”屬性。
在你的情況下你需要使用雙倍%
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.