在(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(,它可能是可变的。有没有一个聪明的技巧来解决这个问题,也许是嵌套字符串,或者其他什么?

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

<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(price是所选字符串的参数。