我在我的代码中使用了DatePickerDialog,并在使用它之前设置了应用程序的区域设置,并在我的基本活动的onCreate中设置了区域设置。它在阿拉伯语中工作完美,因为它使用阿拉伯语(称为印地语格式或东方阿拉伯数字)和阿拉伯字符串,如屏幕截图所示,但我需要在DatePickerDialog本身显示英语数字时,区域设置是阿拉伯语,同时根据客户端的要求保持阿拉伯字符串,因为阿拉伯数字在他的国家不使用,该应用程序将在其中运行。
这意味着所有的,都应该替换为0,1,2,3,4,5,6,7,8,9,这可能实现吗?
下面是我的代码:
BaseActivity
public abstract class BaseActivity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocalizationHelper.setLocal(this);
}
}
LocalizationHelper.java
public class LocalizationHelper {
public static void setLocal(Context context) {
Locale locale = new Locale(getLanguage(context), "LY");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
Resources resources = context.getResources();
resources.updateConfiguration(config, resources.getDisplayMetrics());
}
public static String getLanguage(Context context) {
return SharedPreferencesHelper.getLanguage(context);
}
}
调用对话框:
public static void showDatePicker(Context context, OnDialogActionCallBack onDialogActionCallBack, DashboardFilterDate date) {
LocalizationHelper.setLocal(context);
final Calendar c = Calendar.getInstance();
DatePickerDialog pickerDialog = new DatePickerDialog(context, (view, year1, month1, dayOfMonth) -> onDialogActionCallBack.onPositiveButtonClicked(dayOfMonth, month1, year1),
date != null ? date.getYear() : c.get(Calendar.YEAR),
date != null ? date.getMonth() : c.get(Calendar.MONTH),
date != null ? date.getDay() : c.get(Calendar.DAY_OF_MONTH));
pickerDialog.show();
}
1条答案
按热度按时间tvokkenx1#
如果你想改变结果为英文数字你可以使用这个代码