使用数据绑定设置千位分隔符格式
Thousands separator formatting with 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)中进行格式化?
试试这个格式字符串:
%,.2f $
根据您自己的发现:
Depending on the Locale of the device (in this case, German ), the
desired formatting should be automatically applied.
对于德语语言环境,这将是 1.234,89 $
而对于英国,它将是 1,234.89 &
我有一个如下所示的 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)中进行格式化?
试试这个格式字符串:
%,.2f $
根据您自己的发现:
Depending on the Locale of the device (in this case, German ), the desired formatting should be automatically applied.
对于德语语言环境,这将是 1.234,89 $
而对于英国,它将是 1,234.89 &