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
语法示例:

<?xml version="1.0" encoding="utf-8"?>
<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
语法示例:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);

四、占位符格式化字符串

    占位符格式化字符串要结合方法 String.format(String, Object...)使用,示例如下:

<string name="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标签格式化字符串

示例代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="welcome">Welcome to <b>Android</b>!</string>
</resources>
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);

注意:只支持以下几个标签
<b>:粗体
<i>:斜体
<u>:下划线

如果字符串中包含了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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值