首页 > 解决方案 > (android) xml 资源 android:text 中是否有可能具有可变格式的浮点精度?

问题描述

拥有这样的文本资源

<string name="list_item_station_detail_current_price_price_text">%1$.2f</string>

在这样的布局 xml 中使用

android:text="@{@string/list_item_station_detail_current_price_price_text(currentPrice.price)}"

我的问题是精度并不总是 2 位数字 ( %1$.2f),它可能是可变的。是否有一个聪明的技巧来解决这个问题,也许是嵌套字符串,或者什么?

标签: androidxmlandroid-layouttextviewfloating-accuracy

解决方案


设置一个字符串数组,其中每个条目代表不同的精度。

<string-array name="list_item_station_detail_current_price_price_text">
    <item>%1$.2f</item>
    <item>%1$.3f</item>
    <item>%1$.4f</item>
</string-array>

在 XML 中,TextView为以下内容定义文本:

   android:text="@{String.format(@stringArray/list_item_station_detail_current_price_price_text[currentPrice.precision],currentPrice.price)}"

我假设您已经或可以创建具有精度的变量。

根据精度,选择适当的字符串。(精度 2 映射到索引 0、3->1、4->2)价格是所选字符串的参数。


推荐阅读