在android 開發,我們通常會用string.xml資源去設置textview等控件的字符串。而值一般是與程序的運行結果無關的。
但有時需要根據運行的結果來顯示到控件中,這時字符串資源就不能寫死了。
可以用如下的表示方法來設置:
- %n$ms:s代表輸出的是字符串,n代表是第幾個參數,設置m的值可以在輸出之前放置空格。 如 :%1$2s表示:字符串資源的第1個string類型參數且該參數之后帶有兩個空格。
- %n$md:d代表輸出的是整數,n代表是第幾個參數,設置m的值可以在輸出之前放置空格。
- %n$mf:f代表輸出的是浮點數,n代表是第幾個參數,設置m的值可以控制小數位數。 如:%2$.2f 此時 m=.2,輸出格式為:整數部分.00
下面是它的定義及設置:
string.xml 代碼
<resources> <string name="cart_cost">合計:%1$.2f元</string> <string name="cart_allcount">共:%1$1d件商品</string> </resources>
java 代碼
String temp = getResources().getString(R.string.cart_cost);
//將對應的參數的依次設置進去 如:設置n個值 String.format(temp,param1,param2,...,paramn);
String piece = String.format(temp,(float)totalPiece);
// 此時要重新給控件設置值,不然沒有效果
mTotalCast.setText(piece);
運行結果:
可以發現沒有重新設置的,沒有正確顯示。