Android资源知识(三)之String资源

 字符串可以说是我们使用频率最高的一种资源之一了,毕竟每一款APP当中都要有一些文本提示信息或标题文字等。为了在开发过程中更加方便快捷的使用字符串,Android为我们提供了强大的字符串String资源。下面我们就系统的来学习下吧。

一、使用场景

    1、默认的窗口标题,应用程序名称
    2、某些Activity中的操作步骤,提示信息
    3、根据参数动态显示的一些字符串信息
    (注:此处只列举了几种常用的场景,并不是全部使用场景)


    Android主要支持了普通字符串String字符串数组array占位符格式化字符串简易的html标签格式化字符串复数字符串Quantity Strings (Plurals)5种使用方式。其中复数字符串是用来适应不同语言中数量关系的使用不同,如英语中one book,three books……此处就不作详说了,感兴趣的读者可以详查官方文档。

二、普通字符串String

    文件路径: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);

三、字符串数组array

    文件路径: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);

五、html标签格式化字符串

示例代码如下:


<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);


文/kinbos(简书作者)
原文链接:http://www.jianshu.com/p/0f17aa669009
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

你可能感兴趣的:(Android)