Android开发之values/strings中的%1$s等符号用法
2014-11-05 09:30
405 查看
在改版公司的Android移动App的时候,碰到了这样的一个引用,以前写代码的时候从来没有用到过,所以找资料学习了一下
在strings.xml中碰到如下代码:
这个会在手机的UI显示:上次更新于:2014.11.5
这个值被改变了,怎么改变的,我们先了解一下%1$s是什么意思。
相信学习J***A的都知道
%s,%d,%c,%f这是J***A中格式输出符了
所以,%1$s就是输出一个字符串的意思,如果需要输出第二个字符串则写%2$s,如此类推。
至于$应该是某种控制符
清楚了格式,我们看看怎么改变该值
取值:
注意:如果替换的是整形的话,就不需要双引号,不过也是从String里面取值,如下:
如果有多个要替换的,则按顺序替换。
除此之外,还可以用xliff(XML Localization Interchange File Format:XML本地数据化交换格式)用法,不过这个我没有用到,只是了解了一下,大概的实现也差不多,就是输出格式和xml的文件有点不一样
输出格式:
%n$ms:n代表第几个参数,m是输出前放置的空格数
%n$md:n代表第几个参数,m是输出前放置的空格数,0m是m个0
%n$mf:n代表第几个参数,m控制小数输出位数,m=2.2时,输出00.00(不过在在开发过程中只能限制小数点后面的位数)
xml:
在取值也一样,捕获获取到xliff的id,多个值要改变时,只需要按顺序传入
在strings.xml中碰到如下代码:
<string name="update">上次更新于:%1$s</string>在Layout中引用:
<TextView android:id="@+id/update" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:gravity="center_horizontal|top" android:textColor="@color/lightgray" android:text="@string/update" /> //引用string里面的update在Activity里面获取这个值并改变这个值的内容:
String value = "2014.11.5"; updateAt = String.format(getResources().getString(R.string.update), value);
这个会在手机的UI显示:上次更新于:2014.11.5
这个值被改变了,怎么改变的,我们先了解一下%1$s是什么意思。
相信学习J***A的都知道
%s,%d,%c,%f这是J***A中格式输出符了
所以,%1$s就是输出一个字符串的意思,如果需要输出第二个字符串则写%2$s,如此类推。
至于$应该是某种控制符
清楚了格式,我们看看怎么改变该值
取值:
String str = getResources().getString(R.string.update);替换:
String value = String.format(str, "2014.11.5");
注意:如果替换的是整形的话,就不需要双引号,不过也是从String里面取值,如下:
<string name="money">年收入%1$d</string>
String money = getResources().getString(R.string.money); String salary = String.format(money, 10000);
如果有多个要替换的,则按顺序替换。
除此之外,还可以用xliff(XML Localization Interchange File Format:XML本地数据化交换格式)用法,不过这个我没有用到,只是了解了一下,大概的实现也差不多,就是输出格式和xml的文件有点不一样
输出格式:
%n$ms:n代表第几个参数,m是输出前放置的空格数
%n$md:n代表第几个参数,m是输出前放置的空格数,0m是m个0
%n$mf:n代表第几个参数,m控制小数输出位数,m=2.2时,输出00.00(不过在在开发过程中只能限制小数点后面的位数)
xml:
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name">Test</string> <string name="test">本金:<xliff:g id="money">%1$2.2f</xliff:g></string> </resources>
在取值也一样,捕获获取到xliff的id,多个值要改变时,只需要按顺序传入
相关文章推荐
- 【Android开发】plurals 和 getQuantityString,以及%d 、%.d 、%1$s 、%1$d等的用法
- Android开发之strings.xml文件显示特殊符号
- Android开发基础(2.1)--NDK 的搭建和基本用法
- android应用程序开发另解及Android SDK工具集的另类用法
- Android开发--身高体重指数(BIM)计算--访问标识符号(android:id属性/XML说明文件与R.java资源文件/将字符串抽离XML/新增XML文件)
- 【Android开发】背景选择器selector用法心得
- Android游戏开发教程之三:View类用法详解
- (转)Android开发问题:打开strings.xml不停地报错
- Android 界面开发之菜单Menu用法
- Android应用开发之( TableLayout中stretchColumns、shrinkColumns的用法)
- Android游戏开发教程之三:View类用法详解
- android应用开发揭秘之Notification的简单用法
- Android开发基础:自定义下拉列表样式(spinner的用法)
- Android初级开发第九讲--Intent最全用法(打开文件跳转页面等)
- Android初级开发第九讲--Intent最全用法(打开文件跳转页面等)
- Android开发:LayoutParams的用法
- Android-NDK开发之基础--Android.mk的用法和基础
- Android 开发中的 AsyncTask 的用法记录
- Android开发SimpleAdapter的简单用法
- Android开发之多个Activity跳转(Intent)及菜单用法(menu)