1.官方文档:

  https://developer.android.com/guide/topics/resources/string-resource

2.格式化字符串

2.1 示例

 <resources>
<string name="app_name">DataBind</string>
<string name="format">format : name=%$s,age=%$1d,value=%$32f </string>
<string name="int_format1"> -> \%%#-8X value = %1$#-8X </string>
<string name="int_format2"> -> \%%d value = %$d </string>
<string name="int_format3"> -> \%%o value = %$o </string>
<string name="int_format4"> -> \%%u 不支持 </string> <string name="float_format1">11.777777f -> \%%3f value = %$3f </string>
<string name="float_format2">11.777777f -> \%%f value = %$f </string>
<string name="float_format3">11.777777f -> \%%#e value = %$#E </string><!--#无效-->
<string name="float_format4">11.777777f -> \%%g value = %$G </string> <string name="char_format1"> \%%-5c\'A\' -> \%%5c value = %1$-5c </string>
<string name="char_format2">\"world\" -> \%%s value = %1$s </string> </resources>

结果如下:

2.2 语法格式

  [ %   +   第几个参数(从1开始) +    $     # (显示   +  空格补齐位数(小于实参则忽略,正数左补,负数右补)    +     格式字符 ]

  如: %1$#-8X    其中:

  • 1  表示第1个参数
  • #  显示进制符号
  • -8 右边补齐空格至8位(不足8位则补空格,实参位数大于8则不补)    
  • X  表示16进制数

2.3 支持的格式化符号

格式字符 描述
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀Ox)
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串

  格式符号 u  表示以十进制形式输出无符号整数. 目前不支持

2.4 使用

  • 在代码中

        var text = getString(R.string.format, "李4",,333.333333f)
  • 在数据绑定中使用

             <TextView
    android:id="@+id/tvFormat"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="24dp"
    android:text='@{@string/format("李4",0x20,33.333333f),default=@string/format}'
    app:layout_constraintStart_toStartOf="@+id/feature_edt"
    app:layout_constraintTop_toBottomOf="@+id/features_txt1" />

3. 使用 HTML 标记设置样式

3.1 示例

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome">Welcome to <b>Android</b>!</string>
</resources>

3.2 支持以下 HTML 元素

  • 粗体:<b>、<em>
  • 斜体:<i>、<cite>、<dfn>
  • 文本放大 25%:<big>
  • 文本缩小 20%:<small>
  • 设置字体属性:<font face=”font_family“ color=”hex_color”>。可能的字体系列示例包括 monospaceserif 和 sans_serif
  • 设置等宽字体系列:<tt>
  • 删除线:<s>、<strike>、<del>
  • 下划线:<u>
  • 上标:<sup>
  • 下标:<sub>
  • 列表标记:<ul>、<li>
  • 换行符:<br>
  • 区隔标记:<div>
  • CSS 样式:<span style=”color|background_color|text-decoration”>
  • 段落:<p dir=”rtl | ltr” style=”…”>

3.3 用法

  源串(下例中的username,mailCount)中没有html字符

    val text: String = getString(R.string.welcome_messages, username, mailCount)
val styledText: Spanned = Html.fromHtml(text, FROM_HTML_MODE_LEGACY)

  如果上面代码中的username中含有html字符,要先html编码它。

     val escapedUsername: String = TextUtils.htmlEncode(username)

     val text: String = getString(R.string.welcome_messages, escapedUsername, mailCount)
val styledText: Spanned = Html.fromHtml(text, FROM_HTML_MODE_LEGACY)

<string name="xxx"> 的复杂用法:格式化及使用html标签的更多相关文章

  1. 自学Python1.8-python input/print用法 格式化输出

    自学Python之路 自学Python1.8-python input/print用法 格式化输出 1.input函数 Python3.x 中 input() 函数接受一个标准输入数据,返回为 str ...

  2. required string parameter XXX is not present

    @RequestParam jQuery调用方式: deleteFile: function(filePath) { return ajax({ method: 'POST', url: '/cm/s ...

  3. required string parameter 'XXX'is not present 的几种情况

    required string parameter 'XXX'is not present 的几种情况 情况一:原因是由于头文件类型不对,可以在MediaType中选择合适的类型,例如GET和POST ...

  4. 报错:required string parameter XXX is not present

    报错:required string parameter XXX is not present 不同工具发起的get/delete请求,大多数不支持@RequestParam,只支持@PathVari ...

  5. JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,

    1.对整数进行格式化:%[index$][标识][最小宽度]转换方式        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解, ...

  6. C#中string.format的格式和用法

    String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项. Str ...

  7. string.h文件中函数用法

    下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) ...

  8. SQLAlchemy中解决数据库访问时出现的Incorrect string value: xxx at row 484

    报错信息:Warning: (1366, "Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...‘ for column ‘V ...

  9. String.format(String format,Object... args)的用法

    String.format(String format, Object... args)方法详解 以前也看到过很多次这个用法,一直记不牢靠,今天整理一下.   我仅仅举几个例子稍做说明: String ...

随机推荐

  1. TF上架模式是什么?有什么作用?

    TF上架模式中的TF上架就是TestFlight上架的意思,意思就是将开发者开发完成的App在苹果官方内测商店TestFlight上架的模式,一般被我们简称为TF上架模式. 为什么要了解TF上架呢?为 ...

  2. synchronized 锁的原理

    synchronized 的基本认识 在多线程并发编程中 synchronized 一直是元老级角色,很 多人都会称呼它为重量级锁.但是,随着 Java SE 1.6 对 synchronized 进 ...

  3. 【lhyaaa】最近公共祖先LCA——倍增!!!

    高级的算法——倍增!!! 根据LCA的定义,我们可以知道假如有两个节点x和y,则LCA(x,y)是 x 到根的路 径与 y 到根的路径的交汇点,同时也是 x 和 y 之间所有路径中深度最小的节 点,所 ...

  4. Linux安装python 3

    方法: 1.官网下载地址:http://www.python.org/download/ 2.rz -y 上传到Linux  解压tar -xvzf Python-3.5.1.tgz  进入目录   ...

  5. 微信小程序开发着工具获取和更新newticket

    newticket是微信开发者工具和微信后台交互的凭证.大多数工具的操作都是需要newticket. 如何获取newticket? 打开开发者工具,依次点击菜单设置->通用设置->代理,使 ...

  6. imx28x arm-gcc arm-linux-4.4.4 EasyARM-iMX283

    gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2 提取码: UgUtMUNX

  7. GRE 协议 - 和 ISP 用的协议不一样怎么办

    GRE 出现的背景: 随着网络(公司)规模的增大,越来越多的公司需要在跨区域之间建设自己的分公司.但随之也就出现了这样的问题,考虑这样一个场景.公司 A 在北京和上海间开设了两家公司,由于业务的需要, ...

  8. Mybatis 和 Solon 在一起的升级版

    终于说通 Solon 作者,让他为 Solon 框架添加事务注解支持了:并且把 mybatis-solon-plugin 的 @Df 注解更名为 @Db ,接地气多了(Df是什么鬼呢?新手肯定这么想. ...

  9. Solon详解(一)- 快速入门

    一.Solon 最近号称小而美的的Solon框架,终于得空,搞了一把,发觉Solon确实好用,那Solon到底是什么,又是怎么好用呢? 什么是Solon? Solon参考过Spring boot 和 ...

  10. JavaScript设计模式之策略模式【组合委托】

    前言:语言只是工具,思想才是核心 今天要总结的是 策略模式 策略在开发中的应用非常广泛,所以也是非常常见且使用的设计模式. 在实际开发中,往往在实现一个功能时,有多种解决方案可行. 常见场景: 解压: ...