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. 【JSOI2007】文本生成器 题解(AC自动机+动态规划)

    题目链接 题目大意:给定$n$个子串,要求构造一个长度为$m$的母串使得至少有一个子串是其子串.问方案数. ------------------------ 我们可以对要求进行转化:求出不合法的方案数 ...

  2. hashMap在jdk1.7与jdk1.8中的原理及不同

    在分析jdk1.7中HashMap的hash冲突时,不知大家是否有个疑问就是万一发生碰撞的节点非常多怎么版?如果说成百上千个节点在hash时发生碰撞,存储一个链表中,那么如果要查找其中一个节点,那就不 ...

  3. Chrome简洁高效管理下载项

    每次要查看下载记录时,Chrome新建下载标签页的速度能让我抓狂 之前用的 Chrono 界面太过传统,而且还不能点击打开.所以一直在寻找好用的下载管理插件,经过多次在拓展商城搜索比对,找到了这款拓展 ...

  4. kubernetes ingress 重定向地址错误

    环境: 有两个 kubernetes 集群: 一个版本为1.11,后面使用A集群代替,ingress 镜像版本为 0.19(quay.io/kubernetes-ingress-controller/ ...

  5. 解决Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no jogl in java.library.path问题

    首先要把jonl.jar和gluegen.jar导入到eclipse中,然后把解压后的4个.dll文件也导入到eclipse中 具体操作: jonl文件下载地址 链接:https://pan.baid ...

  6. 2020-05-11:redis 10G 内存开一个实例 和redis 1G内存开10个实例有什么区别

    福哥答案2020-05-11: 此答案不完善,仅供参考.开10个实例相对更占资源,在多核下能充分利用资源.

  7. C#LeetCode刷题之#374-猜数字大小(Guess Number Higher or Lower)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3993 访问. 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 ...

  8. K8s集群verification error" while trying to verify candidate authority certificate "kubernetes"

    问题内容 because of "crypto/rsa: verification error" while trying to verify candidate authorit ...

  9. 分治算法(二分查找)、STL函数库的应用第五弹——二分函数

    分治算法:二分查找!昨天刚说不写算法了,但是突然想起来没写过分治算法的博客,所以强迫症的我…… STL函数库第五弹——二分函数lower_bound().upper_bound().binary_se ...

  10. unity探索者之UGUI圆形图片组件

    版权声明:本文为原创文章,转载请声明https://www.cnblogs.com/unityExplorer/p/13524824.html 使用UGUI进行游戏开发的过程中经常会遇到一个问题:玩家 ...