字符串可以说是我们使用频率最高的一种资源之一了,毕竟每一款APP当中都要有一些文本提示信息或标题文字等。为了在开发过程中更加方便快捷的使用字符串,Android为我们提供了强大的字符串String资源。下面我们就系统的来学习下吧。
1、默认的窗口标题,应用程序名称
2、某些Activity中的操作步骤,提示信息
3、根据参数动态显示的一些字符串信息
(注:此处只列举了几种常用的场景,并不是全部使用场景)
Android主要支持了普通字符串String、字符串数组array、占位符格式化字符串、简易的html标签格式化字符串、复数字符串Quantity Strings (Plurals)5种使用方式。其中复数字符串是用来适应不同语言中数量关系的使用不同,如英语中one book,three books……此处就不作详说了,感兴趣的读者可以详查官方文档。
文件路径:res/values/filename.xml
引用方式如下:
In Java: R.string.string_name
In XML:@string/string_name
语法示例:
<resources>
<string name="hello">Hello!string>
resources>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello" />
String string = getString(R.string.hello);
文件路径:res/values/filename.xml
引用方式如下:
In Java: R.array.string_array_name
语法示例:
<resources>
<string-array name="planets_array">
<item>Mercuryitem>
<item>Venusitem>
<item>Earthitem>
<item>Marsitem>
string-array>
resources>
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);
占位符格式化字符串要结合方法 String.format(String, Object...)使用,示例如下:
"welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
%1,%2,……%n表示占位符。
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
示例代码如下:
<resources>
<string name="welcome">Welcome to <b>Androidb>!string>
resources>
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
注意:只支持以下几个标签
:粗体
:斜体
:下划线
如果字符串中包含了html的特殊字符,如“<”,“>”,“&”等,必须先使用htmlEncode方法进行格式化后,再使用format方法格式化,示例如下:
String escapedUsername = TextUtil.htmlEncode(username);
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), escapedUsername, mailCount);
CharSequence styledText = Html.fromHtml(text);