usage of strings.xml

占位符

strings.xml中节点是支持占位符的,如下所示:

整数型:%1$d,浮点型:%2$.2f,字符串:%3$s

其中%后面是占位符的位置,从1开始,

$ 后面是填充数据的类型

$d:表示整数型;

$f :表示浮点型,其中f前面的.2表示小数的位数

$s:表示字符串

这些和C语言中输入输出函数的占位符很相似

在程序中我们可以通过下面的代码对字符串进行格式化,也就是填充占位符中的内容:

1
2
String data = getResources().getString(R.string.data);
data = String.format(data, 100, 10.3, "2011-07-01");

strings.xml用法

用法1:普通string

< ?xml version="1.0" encoding="utf-8"?>
<resources>    
    <string name="string_name">text_string</string>
</resources>

用法2:string 数组

< ?xml version="1.0" encoding="utf-8"?>
<resources>
    <string -array name="string_array_name">
        <item>text_string</item>
    </string>
</resources>

java代码中使用:

Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);

用法3:Plurals

< ?xml version="1.0" encoding="utf-8"?>
<resources>
    <plurals name="numberOfSongsAvailable">
        <item quantity="one">One song found.</item>
        <item quantity="other">%d songs found.</item>
    </plurals>
</resources>

java代码:

int count = getNumberOfsongsAvailable();
Resources res = getResources();
String songsFound = res.getQuantityString(R.plurals.numberOfSongsAvailable, count);

用法4:Formatting and Styling 格式化、占位等

1.格式化字符串

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
//java代码
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

2.html

< ?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="welcome">Welcome to <b>Android</b>!</string>
</resources>

3.以上两种方式的结合体

<resources>
  <string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.</string>
</resources>

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
文章目录
  1. 1. 占位符
  2. 2. strings.xml用法
    1. 2.1. 用法1:普通string
    2. 2.2. 用法2:string 数组
    3. 2.3. 用法3:Plurals
    4. 2.4. 用法4:Formatting and Styling 格式化、占位等