热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TextView.setText()遇到的问题

影子:在开发中我们经常会在代码中去设置TextView的文本。在AS中你可能会遇到这样一个警告:DonotconcatenatetextdisplayedwithsetText.U
影子:
在开发中我们经常会在代码中去设置TextView的文本。
  • 在AS中你可能会遇到这样一个警告:Do not concatenate text displayed with setText. Use resource string with placeholders. (Ctrl + F1)
  • 有道译文:不要将显示的文本与setText连接。使用带有占位符的资源字符串。在调用TextView.setText 时,不要调用Number.toString()来格式化数字;它不会正确处理分数分隔符和特定于区域的数字。考虑使用格式规范(%d或%f)的字符串#格式。不要传递字符串字面意思。“你好”)来显示文本。硬编码的文本不能正确地翻译成其他语言。可以考虑使用Android资源字符串。*不要通过连接文本块来构建消息。(译文可能有误差,请忽略掉)
    警告原因AS已经说的很清楚了,现在我们看看如何解决。
解决格式规范(%d或%f)的字符串
常见格式的类似有:
  • %n$s—>n表示目前是第几个参数 (比如%1$s中的1代表第一个参数),s代表字符串
  • %n$d—>n表示目前是第几个参数 (比如%1$d中的1代表第一个参数),d代表整数
  • %n$f—>n表示目前是第几个参数 (比如%1$f中的1代表第一个参数),f代表浮点数

使用案列:
tv_Message.setText(String.format(getString(R.string.s_Message),1));
R.string.s_Message 内容:
这是第%d条消息

好了,使用这种规范格式输出,恭喜你绿了不黄了。
妈妈再也不怕我是处女座了。
–2018/6/19
遇到类似进度为%d %这种格式的字符串时,需要把%写成%%。
String.format() 中单个%是会报错的,需要显示单个%时,用两个%代替。
进度为%d %%


推荐阅读
author-avatar
snailslowdx_619
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有