防止数字在区域设置更新后从英语更改为阿拉伯语 android

Prevent digits to change from English to Arabic on Locale updated android

我正在为已经完成的应用程序提供阿拉伯语支持。将应用程序语言更改为阿拉伯语后,XML 字符串中的数字显示为阿拉伯数字。

但我的问题是执行以下代码

getString(R.string.value, ++value);

<string name="value">Value : %d</string>

值-ar

<string name="value">%d :القيمة </string>

用英语,它工作正常。

Value: 1

关于将语言更改为阿拉伯语(以阿拉伯语出现)。必须是英文 (0-9)

Value : (Number in Arabic)

请提供我的问题的解决方案。

您可以使用 String.format 更改号码的区域设置以始终以英语显示:

String.format(Locale.ENGLISH, getString(R.string.value), ++value)

虽然问这个问题需要很长时间(7个月),但对其他人可能有用。我这样做了,我的问题就解决了。

首先我创建了一个 Locale 变量:

val englishLocale = Locale("en")

然后我在需要的函数中使用了这个变量:

例如日期格式:

SimpleDateFormat("yyyy-MM-dd HH:mm:ss", englishLocale)

或者以正常格式显示经过的时间(以毫秒为单位):

String.format(englishLocale, "%02d:%02d:%02d", seconds / 3600, (seconds % 3600) / 60, seconds % 60)