【问题标题】:String format parameter is not working in string.xml on android字符串格式参数在 android 上的 string.xml 中不起作用
【发布时间】:2015-01-09 17:43:40
【问题描述】:

在我的代码中,我使用这个将字符串参数发送到 string.xml

String.format(getString(R.string.notification_devil_expire_coupon_for_one_user), "iphone", String.valueOf(loggedInUser.getExpiryReminder()));

在string.xml中我用这个来获取参数

 <string name="notification_devil_expire_coupon_for_one_user">Do you even shop, bro? Your <xliff:g id="retailer">%s1</xliff:g> coupon expires in <xliff:g id="endDate">%s2</xliff:g> days.</string>

预期输出

 Do you even shop, bro? Your iphone coupon expires in 3 days.

但我的输出是

 Do you even shop, bro? Your iphone1 coupon expires in 32 days.

在字符串中添加参数编号。我不知道我在代码中哪里做错了

【问题讨论】:

    标签: java android xml string string-formatting


    【解决方案1】:

    字符串格式化程序将%s 替换为有序列表中的值。没有必要给它们编号。因此,与其使用%s1%s2,不如在这样的每个地方使用%s

    <string name="notification_devil_expire_coupon_for_one_user">Do you even shop, bro? Your <xliff:g id="retailer">%s</xliff:g> coupon expires in <xliff:g id="endDate">%s</xliff:g> days.</string>
    

    【讨论】:

      【解决方案2】:

      为参数编号是一种很好的做法,因为顺序可能会因语言而异。如果只有一个参数是 %s,那么几个参数将是 %1$s、%2$s 等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多