Я использую DatePickerDialog в своем коде и устанавливаю языковой стандарт приложения непосредственно перед его использованием и в onCreate моей базовой активности. он отлично работает на арабском языке, поскольку использует арабский язык (так называемый формат хинди или восточно-арабские цифры) и арабские строки, как показано на снимке экрана. Но мне нужно отображать английские цифры в самом DatePickerDialog, когда языковой стандарт является арабским, сохраняя при этом арабские строки по запросу клиента, поскольку арабские цифры не используются в его стране, в которой будет работать приложение.
Это означает, что все ٠, ١, ٢, ٣, ٤, ٥, ٦, ٧, ٨, ٩ следует заменить на 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. этого можно добиться?
Вот мой код:
Базовая активность
публичный абстрактный класс BaseActivity расширяет AppCompatActivity{ @Override protected void onCreate(@Nullable Bundle saveInstanceState) { super.onCreate(saveInstanceState); LocalizationHelper.setLocal(это); } } LocalizationHelper.java
общественный класс LocalizationHelper { public static void setLocal(Контекст контекста) { Локаль локаль = новая локаль (getLanguage (контекст), «LY»); Locale.setDefault(локаль); Конфигурация config = новая конфигурация(); config.locale = локаль; Ресурсы ресурсы = context.getResources(); resources.updateConfiguration(config, resources.getDisplayMetrics()); } public static String getLanguage (контекст контекста) { return SharedPreferencesHelper.getLanguage(контекст); } } Вызов диалога:
public static void showDatePicker(Context context, OnDialogActionCallBack onDialogActionCallBack, DashboardFilterDate date) { LocalizationHelper.setLocal(контекст); окончательный календарь c = Calendar.getInstance(); DatePickerDialog PickerDialog = новый DatePickerDialog(контекст, (просмотр, год1, месяц1, деньМесяца) -> onDialogActionCallBack.onPositiveButtonClicked(dayOfMonth, месяц1, год1), дата!= ноль? date.getYear(): c.get(Calendar.YEAR), дата!= ноль? date.getMonth() : c.get(Calendar.MONTH), дата!= ноль? date.getDay(): c.get(Calendar.DAY_OF_MONTH)); PickerDialog.show(); }
