在android的开发中,经常会遇见一句话,比如“我今年23岁了”;这个23需要在程序中生成,但是遇到一个问题,这完整的一句话是一个TextView中的,而不是三个textView拼接成的,而且是引用的string.xml文件中写好的;使用字符串拼接也可以实现,但是特别麻烦;

今天遇到一个好方法,在string.xml中,不仅可以设置文字的格式换行等,还可以设置类似于变量的文本格式;

1、整型,比如“我今年23岁了”,这个23是整型的。在string.xml中可以这样写,<string name="old">我今年%1$d岁了</string>

在程序中,使用

String sAgeFormat = getResources().getString(R.string.old);

String sFinalAge = String.format(sAgeFormat, 23);

将%1$d替换为23;

%1$d表达的意思是整个name=”old”中,第一个整型的替代。如果一个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, "李四","首都北京");

这里两个string需要替换的,按照上面程序的顺序依次对应。

转自:http://blog.sina.com.cn/s/blog_72fad6270100snn3.html





总体来说不算特别好的方法,可能在逻辑上较“”+“”还要复杂一些。

更多相关文章

  1. android的低内存管理器
  2. android 意见反馈
  3. Android应用程序大小上限增至4.05GB
  4. Android实现长按back键退出应用程序的方法
  5. Android应用程序Zipalign化 -- 如何让Android应用程序更有效率的
  6. Android开发之使用Preferences设计软件设置界面(源代码分享)
  7. Android基础学习第一天
  8. android 绑定sqlite数据库与程序一起发布
  9. 关于ANE的调试心德

随机推荐

  1. android的makefile 特有的 dd
  2. Android仿360悬浮小球自定义view实现示例
  3. Android实习生 —— 数据存储与共享
  4. Android(安卓)手势基础 GestureDetector
  5. 【Android】更改程序图标
  6. android 为什么初始界面scrollView.scrol
  7. Android通过获取Ip的方法判断手机是否联
  8. android coordinatorLayout 使用简介
  9. Android仿淘宝头条垂直滚动,垂直走马灯,公
  10. Android(安卓)AsyncTask 源码解析