使用数据绑定进行数千个分隔符格式化

时间:2016-06-07 08:41:19

标签: android android-resources number-formatting android-databinding

我有一个看起来像这样的ViewModel:

public class OrderViewModel {
    double price = 23748.89;
}

以及将OrderViewModel绑定到的布局:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data>

        <variable
            name="order"
            type="com.example.viewmodel.OrderViewModel"/>

    </data>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal">


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@{@string/price_format(order.price)}"/>

    </LinearLayout>

</layout>

使用的格式化字符串如下所示:

<string name="price_format">%+.2f $</string>

很好地添加$符号并将浮点表示减少为2位小数。

结果看起来像

  

1234.89

现在我想用逗号替换小数点并添加千位分隔符,使我的价格看起来像

  

1.234,89

我可以单独使用XML格式化字符串吗?还是必须在java代码(我的ViewModel)中进行格式化?

1 个答案:

答案 0 :(得分:5)

尝试以下格式字符串:

%,.2f $

根据你自己的发现:

  

取决于设备的区域设置(在本例中为德语),   应自动应用所需的格式。

对于德语区域设置,这将是1.234,89 $,而对于英国,则为1,234.89 &