`
warnerhit
  • 浏览: 122858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 中的string.xml用法小结

阅读更多
下面为Strings.xml文件中一些常用标签:
<b></b>加粗字体

<i></i> 斜体字体

<u></u> 给字体加下划线

\n 换行

\u0020表示空格

\u2026表示省略号

使用&lt;b>和&lt;b>来打印出<b></b> 这样的文字;“&lt;”表示“<”的意思;

使用textView.setText(Html.fromHtml("Hello <b>World</b>,<font size=\"3\" color=\"red\">AnalysisXmlActivty!</font>"));设置类似于html那样的效果

如果你需要使用 String.format(String, Object...) 来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子:

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

在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串 %2$d 是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:
例一:

Resources res = getResources();

String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。
列二:

比如“我的名字叫李四,我来自首都北京”;这里的“李四”和“首都北京”都需要替换。

在string.xml中可以这样写,<string name="alert">我的名字叫%1$s,我来自%2$s</string>

 

在程序中:

String sAgeFormat1 = getResources().getString(R.string.alert); 
String sFinal1 = String.format(sAgeFormat1, "李四","首都北京");

这里两个string需要替换的,按照上面程序的顺序依次对应。


问题补充:如何在<string></string>中使用%号

有两个办法可供选择
1.用%%来表示1个%,和转意符号 \ 的用法相同

2.如果你的字符串不需要格式化,可以在你的<string 标签上增加一个属性:formatted="false"例如 <string name="test" formatted="false">% test %</string>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics