Android string.xml 及萬用字元 %$ 取值用法
阿新 • • 發佈:2019-02-01
為了程式碼規範化,這幾天嘗試了string.xml的使用:
1、萬用字元的使用:
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
在上面程式碼中,這個格式化的字串有2個引數
%n$ms:代表輸出的是字串,n代表是第幾個引數,設定m的值可以在輸出之前放置空格%n$md:代表輸出的是整數,n代表是第幾個引數,設定m的值可以在輸出之前放置空格,也可以設為0m,在輸出之前放置m個0
%n$mf:代表輸出的是浮點數,n代表是第幾個引數,設定m的值可以控制小數位數,如m=2.2時,輸出格式為00.00
在java程式碼中照下面的方法來根據引數來格式化字串:
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
2、然後是陣列的用法:
<string-array name="type_list"> <item>全部</item> <item>充值記錄</item> <item>網銀消費</item> <item>充值消費</item> </string-array>
在java程式碼中照下面的方法來格式化陣列:
getResources().getStringArray(R.array.type_list);
或者
this.getStringArray(R.array.type_list);
3、然後是image 圖片資源的使用方法:
在java程式碼中使用方法:<string-array name="feed_icons"> <item>@drawable/latest</item> <item>@drawable/video</item> <item>@drawable/world</item> <item>@drawable/sports</item> <item>@drawable/arts</item> <item>@drawable/dining</item> </string-array>
Map<String, Object> map;
TypedArray ta = getResources().obtainTypedArray(R.array.feed_icons);
String[] titleArr = getResources().getStringArray(R.array.feed_names);
for(int i=0; i<titleArr.length; i++)
{
map = new HashMap<String, Object>();
map.put("icon", ta.getResourceId(i, 0));
map.put("title", titleArr[i]);
list.add(map);
}
注意:TypedArray是關鍵,程式碼中去圖片時候要這麼用int
id = ta.getResourceId(index, 0);
4、最後是字串,這個最簡單了。
<span style="white-space:pre"> </span><string name="old_pass">請輸入舊密碼</string>
<string name="new_pass">請輸入新密碼</string>
<string name="confirm_pass">請確認密碼</string>
取值很簡單:getResources().getString(R.string.name)
當然還可以直接在xml檔案中使用,這裡就不在贅述了!