美文网首页Android基础问题
TextView.setText() 遇到的问题

TextView.setText() 遇到的问题

作者: 奈蜇 | 来源:发表于2018-04-21 15:22 被阅读0次

    影子:

    在开发中我们经常会在代码中去设置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 内容:
    <string name="s_Message ">这是第%d条消息</string>

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

    相关文章

      网友评论

        本文标题:TextView.setText() 遇到的问题

        本文链接:https://www.haomeiwen.com/subject/ilexlftx.html