我成功地将多个语言环境添加到我的应用程序中,并想出了如何在它们之间切换的方法,但问题是,在我切换区域设置之后,除了数字之外,一切都正常。
例如,如果我切换到波斯数字将保持123,这是错误的,应该切换到١٢٣。
我不能使用String.format(number)
,因为我的大部分数字都包含在字符串中。有人能帮我吗?
发布于 2020-07-07 21:57:52
我找到的最佳解决方案是一种在波斯语/阿拉伯语地区强制使用数字字体的讨厌的方法!您必须创建多个font.xml
文件并将它们放入res/font
中,然后使用基于区域设置的themes
将相关字体分配给android:fontFamily
。结果如下:
font/font-en.xml
font/font-ar.xml
font/font-fa.xml
values-en/themes.xml
values-ar/themes.xml
values-fa/themes.xml
发布于 2020-07-05 21:37:57
如果还想转换数字,则不能将其绑定为字符串,必须将其设置为浮点数或int。
<string name="numberRes">%d</string>
textview.setText(String.format(R.string.numberRes,numberValue))
如果浮点数用%f替换%d,numberValue必须是整数。
如果字符串格式的所有数字都使用
textview.setText(String.format(R.string.numberRes,Integer.valueOf(numberValue)))
如果您的字符串的数字格式错误,请小心NumberFormatException
https://stackoverflow.com/questions/62749444
复制相似问题