android string.format()长度,Android通过String.format格式化(动态改变)字符串资源的显示内容...
一、实现效果:
最近在项目中需要做类似于上图显示的效果,里面的数字和称谓是动态获取的,对于这种显示效果,有如下两种解决方案来处理:
(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格式化(动态改变)字符串资源的显示内容...相关推荐
- android edittext 输入长度,Android EditText限制输入字数的方法
本文实例讲述了Android EditText限制输入字数的方法.分享给大家供大家参考,具体如下: //新浪微博字数限制 private static final int WEIBO_CONTENT_ ...
- android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...
最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色 ...
- android 获取视频长度,android中如何获取视频时长
1.关键代码 MediaMetadataRetriever mmr = new MediaMetadataRetriever(); String duration = mmr.extractMetad ...
- android 定义集合长度,Android Dex文件结构解析
Java源文件通过Java编译器生成CLASS文件,再通过dx工具转换为classes.dex文件. DEX文件从整体上来看是一个索引的结构,类名.方法名.字段名等信息都存储在常量池中,这样能够充分减 ...
- 微信小程序view动态长度_微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】...
本文实例讲述了微信小程序实现动态改变view标签宽度和高度的方法.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 index.wxml文件 >我是view标签,我现在的宽度是{{v ...
- android双联动列表,Android Fragment实现列表和内容联动
在平板上经常能看到这种的情况:左边是一个列表,右边是列表项对应的内容,当点击某一个列表时,右边内容区也会随之改变.下面使用fragment简单的demo: 思路:在mainactivity定义一个回调 ...
- 【Android 进程保活】oom_adj 值 ( oom_adj 值对应的进程优先级 | oom_adj 值动态改变 | 进程保活优化方向 )
文章目录 一.oom_adj 值对应的进程优先级 二.oom_adj 值动态改变 1.正常运行时的 oom_adj 值 2.按下 Home 键后的 oom_adj 值 3.按下回退键后的 oom_ad ...
- 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...
- java format用法_Java中String 的 format用法
常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重 ...
最新文章
- 论文简述 | TextSLAM:具有平面文本特征的视觉SLAM
- python网络爬虫入门小程序_Python 实现网络爬虫小程序
- IO多路转接模型-----epoll
- 深入理解java虚拟机_深入理解Java类加载
- android上传项目到码云_直播开源项目
- 计算机网络 第二章 物理层
- zabbix_get查看agent端的key值提示没有权限:Permission denied
- mac vscode zsh git中文乱码解决方案
- 8个按键控制8个继电器c语言程序,单片机C语言程序的设计实训100例.doc
- 【数字信号处理】基于Matlab GUI数字均衡器设计【含Matlab源码 904期】
- python中output使用_Python使用input() output()函数输入、输出数据记录
- MemoryStream
- 运算放大器基本原理与参数解读
- 点云旋转平移(三)—python open3d点云旋转
- 什么是restful?怎样用通俗的语言解释restful?
- ATA学习记录(1)download microcode
- java 轻量级插件化框架_轻量级插件化框架——Small
- NUC970 配置gadget驱动 模拟U盘
- DIV+CSS-01
- 如何充分利用实时聊天系统?