一、实现效果:

最近在项目中需要做类似于上图显示的效果,里面的数字和称谓是动态获取的,对于这种显示效果,有如下两种解决方案来处理:

(1)通过代码动态设置TextView的内容,比如:

/**

* 显示今日状态

*

* */

private void showTodayState( int totalUser, float upRate, String hornor, char level ){

StringBuilder todayStateStr = new StringBuilder( );

todayStateStr.append( "您正与" );

todayStateStr.append( totalUser );

todayStateStr.append( "位朋友在一起游戏,本周排名提升了" );

todayStateStr.append( upRate );

todayStateStr.append( ",获得" );

todayStateStr.append( hornor );

todayStateStr.append( "的称号,等级为" );

todayStateStr.append( level );

todayStateStr.append( "!" );

mTodayStateTxt.setText( todayStateStr );

}然后调用该方法:

showTodayState( 1234567, 68.376f, "爆头大师", 'B' );(2)在string.xml文件中定义一个字符串,然后在代码中通过String.format方法来格式化该字符串,比如:

您正与%1$d位朋友在一起游戏,本周排名提升了%2$.3f,获得%3$s的称号,等级为%4$c!在代码中做如下定义:

/**

* 显示今日状态

*

* */

private void showTodayState( int totalUser, float upRate, String hornor, char level ){

String todayStateStr = String.format( getResources( ).getString( R.string.today_state_string), totalUser, upRate, hornor, level );

mTodayStateTxt.setText( todayStateStr );

}本文介绍第二种处理方式,因为显然第二种处理方式更方便,特别是需要动态改变多个显示状态的时候。

二、字符串资源格式化详细介绍:

您正与%1$d位朋友在一起游戏,本周排名提升了%2$.3f,获得%3$s的称号,等级为%4$c!从上面这行字符串的定义可以看出,格式化字符串资源的格式为:

%+参数位置+$+格式化类型,其中:

参 数  位 置:从1开始依次编号,String.forma方法的第二个参数为格式化的第一个参数,后面依次递增;

格式化类型:

s 字符串

f 浮点数

d 整型数

c 字符类型

其实懂点C语言的朋友一看就知道和printf的打印输出格式化差不多。

三、注意事项:

1、在string.xml文件中定义好格式化的字符串资源,通过代码动态设置字符串内容时,必须确保String.format方法里面的参数不少于字符串资源中定义的格式化参数个数(实践证明多了参数是不会报异常的),比如在上面的例子中字符串有四个格式化参数,如果代码写成这样:

showTodayState( int totalUser, float upRate, String hornor )//少了level参数则会报如下异常:

四、参考资料:

原文:http://blog.csdn.net/ekeuy/article/details/39289367

android string.format()长度,Android通过String.format格式化(动态改变)字符串资源的显示内容...相关推荐

  1. android edittext 输入长度,Android EditText限制输入字数的方法

    本文实例讲述了Android EditText限制输入字数的方法.分享给大家供大家参考,具体如下: //新浪微博字数限制 private static final int WEIBO_CONTENT_ ...

  2. android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...

    最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色 ...

  3. android 获取视频长度,android中如何获取视频时长

    1.关键代码 MediaMetadataRetriever mmr = new MediaMetadataRetriever(); String duration = mmr.extractMetad ...

  4. android 定义集合长度,Android Dex文件结构解析

    Java源文件通过Java编译器生成CLASS文件,再通过dx工具转换为classes.dex文件. DEX文件从整体上来看是一个索引的结构,类名.方法名.字段名等信息都存储在常量池中,这样能够充分减 ...

  5. 微信小程序view动态长度_微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】...

    本文实例讲述了微信小程序实现动态改变view标签宽度和高度的方法.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 index.wxml文件 >我是view标签,我现在的宽度是{{v ...

  6. android双联动列表,Android Fragment实现列表和内容联动

    在平板上经常能看到这种的情况:左边是一个列表,右边是列表项对应的内容,当点击某一个列表时,右边内容区也会随之改变.下面使用fragment简单的demo: 思路:在mainactivity定义一个回调 ...

  7. 【Android 进程保活】oom_adj 值 ( oom_adj 值对应的进程优先级 | oom_adj 值动态改变 | 进程保活优化方向 )

    文章目录 一.oom_adj 值对应的进程优先级 二.oom_adj 值动态改变 1.正常运行时的 oom_adj 值 2.按下 Home 键后的 oom_adj 值 3.按下回退键后的 oom_ad ...

  8. 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片

    一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...

  9. java format用法_Java中String 的 format用法

    常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重 ...

最新文章

  1. 论文简述 | TextSLAM:具有平面文本特征的视觉SLAM
  2. python网络爬虫入门小程序_Python 实现网络爬虫小程序
  3. IO多路转接模型-----epoll
  4. 深入理解java虚拟机_深入理解Java类加载
  5. android上传项目到码云_直播开源项目
  6. 计算机网络 第二章 物理层
  7. zabbix_get查看agent端的key值提示没有权限:Permission denied
  8. mac vscode zsh git中文乱码解决方案
  9. 8个按键控制8个继电器c语言程序,单片机C语言程序的设计实训100例.doc
  10. 【数字信号处理】基于Matlab GUI数字均衡器设计【含Matlab源码 904期】
  11. python中output使用_Python使用input() output()函数输入、输出数据记录
  12. MemoryStream
  13. 运算放大器基本原理与参数解读
  14. 点云旋转平移(三)—python open3d点云旋转
  15. 什么是restful?怎样用通俗的语言解释restful?
  16. ATA学习记录(1)download microcode
  17. java 轻量级插件化框架_轻量级插件化框架——Small
  18. NUC970 配置gadget驱动 模拟U盘
  19. DIV+CSS-01
  20. 如何充分利用实时聊天系统?

热门文章

  1. python3中的property使用方法
  2. 在微信小程序中使用字体图标
  3. DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
  4. C#实现局域网UDP广播
  5. php环境模拟stphp_用php模拟做服务端侦听端口
  6. mongodb模糊查询_MongoDB技术从0到1+
  7. Python中内存管理的问题
  8. HTML-meta标签
  9. 数学基础 —— 线性代数
  10. kaggle比赛——房价预测