我在自定义DatePicker
中使用TimePicker
和Dialog
。功能正常,但是当我更改应用程序的默认Locale
以匹配阿拉伯语时,我遇到了问题。
问题是DatePicker
和TimePicker
没有在所有Android版本上本地化。它适用于Android 4.2.2及更高版本。但它不适用于Android 4.1.2及更低版本。
我想要将DatePicker
和TimePicker
的本地化一直改为英语,或者在Locale
与阿拉伯语匹配时将其更改为阿拉伯语。
这是Android 4.2.2及更高版本中的对话框(与本地化匹配的正确对话框)
这是Android 4.1.2及更低版本中的对话框
您需要创建自定义DatePicker或TimePicker。看到这个链接https://stackoverflow.com/a/9220899/3864698。它可以帮助您解决问题。
或者您可以使用Reflection编辑NumberPicker值,按照this link获取完整的解决方案。
在显示DatePicker / TimePicker之前,请更改片段/活动中的区域设置。
Locale locale = Locale.US; //您的特定区域设置。 Locale.setDefault(区域);
Configuration configuration = context.getResources().getConfiguration();
configuration.setLocale(locale);
configuration.setLayoutDirection(locale);
context.createConfigurationContext(configuration);