2014-08-19 21:58:05|?次阅读|上传:huigezrx【已有?条评论】发表评论
关键词:Android, 移动应用|来源:唯设编程网
要想载入一个格式化的字符串,你需要确保所有的格式变量均已被转义。 实现这一目的一种方式是使用TextUtils.htmlEncode( ) 方法:
import android.text.TextUtils; ... String mySimpleWinString; mySimpleWinString = getResources().getString(R.string.winLose); String escapedwin = TextUtils.htmlEncode("Won") ; String resultText = String.format(mySimpleWinString, 5, 5, escapedwin) ;
存储于resulText 变量中的返回文本为:
Score : 5 of 5 ! You Won.
现在, 像前面的winLoseStyled 字符串资源那样, 如果你需要使用风格化的字符串,那么你需要采取几个步骤来处理转义的"斜体"标记。
import android.text.Html; import android.text.TextUtils; ... String myStyledWinString; myStyledWinString = getResources().getString(R.string.winLoseStyled); String escapedWin = TextUtils.htmlEnçode("Won"); String resultText = String .format(myStyledWinString, 5, 5, escapedWin); CharSequence styledResults = Html.fromHtml( resultText);
存储于styledResults变盘中的返回文本为:
Score : 5 of 5 ! You <i>Won</i>.
styledResults 这一变量可以用在类似于TextView 对象的用户界面控件中 ,这些风格化的文本将在其中获得正确的显示。
提示:有一种特殊的资源类型,称为<plurals> ,它可时用来定义一些具有单复数形式的字符串。 例如, 你可以为字符串" You caught a goose! " 定义一个plural (复数形式): "You caught %d geese!“。复数形式的字符事使用Resource 类的getQuantityString() 方法载入,而不是getString ()方法。 更多内容可以参考Android SDK 文档中有关复数元素的部分。
你可以在资源文件中指定字符串列表。这是一种存储菜单选项和下拉列表项的好方式。String数组在/res/values 工程目录的XML文件中定义,并且在构建( build) 时编译进应用程序包。
String 数组使用其相对应的<string-array>标记和若干<item> 子标记,每一个标记里面含有一个字符申。下而是一个简单数组资源主件/ res / values/array s. xml的示例:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="flavors"> <item>Vanilla Bean</item> <item>Chocolate Fudge Brownie</item> <item>Strawberry Cheesecake</item> <item>Coffee, Cofee, Buzz Buzz Buzz</item> <item> Americone Dream</item> </string-array> <string-array name="soups"> <item>Vegetable minestrone</item> <item>New England clam chowder</item> <item>Organic chicken noodle</item> </string-array> </resources>
如前面部分所讲的一样,访问字符串数组的方法非常简单。下面的代码获取了一个名为flavors 的字符串数组:
String[] aFlavors = getResources() . getStringArray(R. array:flavors);
Android 资源层级还支持其他一些基础类型。布尔资源可以用来存储一些应用程序参数或者默认值,如游戏的设定等。布尔资源定义在/res/ values 工程目录下的XML 文件中,并且在构建应用程序时编译。
布尔值需要使用<bool>标记以"名称一值"对的方式定义。它的名称即是在程序中访问特定布尔值的依据,所以需要起一个有意义的名字。
下面是/res/values/bools. xml文件中的布尔资源示例:
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bOnePlusOneEqualsTwo">true</bool> <bool name="bAdvancedFeaturesEnabled">false</bool> </resources>