我正在尝试支持左语言的 RTL,并且正在使用阿拉伯语进行测试(我对此一无所知)。
负号/正号应该位于数字的右侧还是左侧?我认为它应该在左侧,但是当我使用 Android 的 DecimalFormat 将数字放入设备设置的区域设置时,该符号出现在右侧。
有谁遇到过这种情况,知道如何解决吗?我能想到的最好办法是如果它是负数,则用括号打印它,这应该可以解决这个问题,但并不理想。
EDIT
抱歉,代码总是有帮助的。如果我打印以下内容(且经度为负):
DecimalFormat coord_df = new DecimalFormat("#.000000");
coord_df.format(loc.getLongitude())
打印出来是这样的
##,######-
其中 # 符号是阿拉伯语数字(如此处东阿拉伯语行所示的数字:http://en.wikipedia.org/wiki/Eastern_Arabic_numerals http://en.wikipedia.org/wiki/Eastern_Arabic_numerals)
我需要在数字的正确一侧得到负数(我认为是左边)
SOLUTION
当我需要处理显示数字时,我最终只是检查设备是否处于 RTL 状态,如下所示:android 确定设备是否采用从右到左的语言/布局 https://stackoverflow.com/questions/26549354/android-determine-if-device-is-in-right-to-left-language-layout
如果设备是 RTL,那么我使用带负号的负子模式作为后缀,如下所示:
"#.000000,#.000000-"
只是分享另一种方法,在文本视图中,您可以将文本方向设置为从左到右,它将正确显示负号。
textView.setTextDirection(TextView.TEXT_DIRECTION_LTR);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)