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

作者: 码道成功 | 来源:发表于2016-11-07 17:42 被阅读161次

        字符串可以说是我们使用频率最高的一种资源之一了,毕竟每一款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);
    

    相关文章

      网友评论

        本文标题:Android资源知识(三)之String资源

        本文链接:https://www.haomeiwen.com/subject/xjyouttx.html