1. 程式人生 > >Android string.xml 及萬用字元 %$ 取值用法

Android string.xml 及萬用字元 %$ 取值用法

為了程式碼規範化,這幾天嘗試了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 圖片資源的使用方法:
<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> 
在java程式碼中使用方法:
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檔案中使用,這裡就不在贅述了!