今天在研究前輩寫的代碼的時候,突然發現string里面出現了<stringname="item_recent_photo">最近拍攝%1$s</string>
有點蒙圈,這個不是c語音里面的表示方式,就百度了一下,記。。。
在TextView中想要動態的顯示某些值,用到%1$s,%1$d,先介紹一下:
- %n$ms:代表輸出的是字符串,n代表是第幾個參數,設置m的值可以在輸出之前放置空格
- %n$md:代表輸出的是整數,n代表是第幾個參數,設置m的值可以在輸出之前放置空格
- %n$mf:代表輸出的是浮點數,n代表是第幾個參數,設置m的值可以控制小數位數,如m=2.2時,輸出格式為00.00
- %d (表示整數)
- %f (表示浮點數)
- %s (表示字符串)
使用:
1、整型,比如“小姐今年23歲了”,這個23是整型的。在string.xml中可以這樣寫,
<string name="old">小姐今年%1$d歲了</string>
String sAgeFormat = getResources().getString(R.string.old);
String sFinalAge = String.format(sAgeFormat, 23);
將%1$d替換為23;
%1$d表達的意思是整個name=”old”中,第一個整型的替代。如果一個name中有兩個需要替換的整型內容,則第二個寫為:%2$d,以此類推
2、string型,比如“我的名字叫李四,我來自首都北京”;這里的“李四”和“首都北京”都需要替換。
在string.xml中可以這樣寫,<string name="alert">我的名字叫%1$s,我來自%2$s</string>
view sourceprint?1 String sAgeFormatString sAgeFormat1= getResources().getString(R.string.alert);
String sFinal1 = String.format(sAgeFormat1, "李四","首都北京");