若要使用到 String.format() 的話
例如
想顯示 已經下載了 多少 bit 的 檔案 format 成 數字格式
String.format(getResources().getString(R.string.update_downloaded),currentSize ,totalSize);
String.xml 中
<string name="update_downloaded">Downloaded %s bit of %s bit</string>
會出現錯誤訊息
error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
查了一下文章
若要在String.xml 中顯示 % 符號 則需要多加一個%
<string name="update_downloaded">Downloaded %%s bit of %%s bit </string>
或是在 元素中加入 formatted="false" 屬性
這樣可以修正error 但是卻不是我想要的結果
因為這範例並沒有要顯示%百分比符號
而是要 format 成 數字格式
查了一下 官方文件
http://developer.android.com/guide/topics/resources/string-resource.html#String
這個問題需要改成 %順序$格式 的方式表示
<string name="update_downloaded">Downloaded %1$s bit of %2$s bit </string>
修正成這樣就ok了
沒有留言:
張貼留言