Android 中动态替换string.xml的值

在android的开发中,经常会遇见一句话,比如“距离为100米”;这个100需要在程序中生成,但是遇到一个问题,这完整的一句话是一个TextView中的,而不是三个textView拼接成的,而且是引用的string.xml文件中写好的;使用字符串拼接也可以实现,但是特别麻烦; 
今天遇到一个好方法,在string.xml中,不仅可以设置文字的格式换行等,还可以设置类似于变量的文本格式; 

1、整型,比如“距离为100km”,这个100是整型的。在string.xml中可以这样写,<string name="distance">距离为%1$d米</string> 

在Java中动态替换100(将%1$d替换为100)

实现的代码如下:

String sAgeFormat = getResources().getString(R.string.distant);      
String sFinalAge = String.format(sAgeFormat, 100);


%1$d表达的意思是整个name=”distance”中,第一个整型的替代。如果一个name中有两个需要替换的整型内容,则第二个写为:%2$d,以此类推;具体程序中替换见下面的string型; 

2、string型,比如“我的名字叫张学友,我来自天津”;这里的“张学友”和“天津”都需要替换。 

在string.xml中可以这样写,<string name="alert">我的名字叫%1$s,我来自%2$s</string> 

实现的代码如下:

String sAgeFormat1 = getResources().getString(R.string.alert);     
String sFinal1 = String.format(sAgeFormat1, "张学友","天津");




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值