zoukankan      html  css  js  c++  java
  • android string.xml %问题

    反复检查后发现是string.xml中的 % 导致编译失败,

    这是由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本的aapt编译起来会比老版本更加的严格,然后在Android最新的开发文档的描述String的部分,已经说明了 如何去设置 %s 等符号,下面是文档片段:

    If you need to format your strings using String.format(String, Object...) , then you can do so by putting your format arguments in the string resource. For example, with the following resource:

    如果你需要使用 String.format(String, Object...) 来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子:

    <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

    In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguements from your application like this:

    在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串 %2$d 是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:

    Resources res = getResources();

    String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

    那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。

    问题补充:

    有读者问如何在<string></string>中使用%号

    有两个办法可供选择
    1.用%%来表示1个%,和转意符号 的用法相同 2.如果你的字符串不需要格式化,可以在你的<string 标签上增加一个属性:formatted="false"例如 <string name="test" formatted="false">% test %</string> 即可

  • 相关阅读:
    Chrome cookies folder
    Fat URLs Client Identification
    User Login Client Identification
    Client IP Address Client Identification
    HTTP Headers Client Identification
    The Personal Touch Client Identification 个性化接触 客户识别
    购物车 cookie session
    购物车删除商品,总价变化 innerHTML = ''并没有删除节点,内容仍存在
    453
    购物车-删除单行商品-HTMLTableElement.deleteRow()
  • 原文地址:https://www.cnblogs.com/qiaoxu/p/4010511.html
Copyright © 2011-2022 走看看