Android:如何将 DatePicker 视图日期格式从 MM/dd/yyyy 更改为 dd/MM/yyyy?

2024-04-15

我很长一段时间以来一直试图找到这个问题的答案。我还查看了以下链接:Android - DatePicker 小工具格式 https://stackoverflow.com/questions/4499433/android-datepicker-widget-format。 在我的手机/模拟器 (v 2.3.3) 上,DatePicker 小部件和对话框均不采用设置中指定的日期格式(设置 -> 日期和时间 -> 选择日期格式)。它们的格式始终为“MM/dd/yyyy”。区域设置设置为英国英语。

当我使用以下命令读取设置时,我得到“d/MM/yyyy”:

Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT);

有人知道如何更改 DatePicker 视图中的日期格式吗?


要覆盖 DatePicker 格式,最好的选择是通过对原始代码进行轻微编辑来覆盖其构造函数之一。您可以在代码中为您编辑 ViewGroup,但我会认真考虑不要这样做。

  1. 创建类 LocalizedDatePicker
  2. 覆盖公共 DatePicker(上下文上下文,AttributeSet attrs,int defStyle) http://developer.android.com/reference/android/widget/DatePicker.html#DatePicker%28android.content.Context,%20android.util.AttributeSet,%20int%29 http://developer.android.com/reference/android/widget/DatePicker.html#DatePicker(android.content.Context http://developer.android.com/reference/android/widget/DatePicker.html#DatePicker(android.content.Context, android.util.AttributeSet, int)
  3. 复制代码原始 DatePicker 构造函数 https://android.googlesource.com/platform/frameworks/base/+/HEAD/core/java/android/widget/DatePicker.java(经过一些测试,您可能需要选择不同的分支,我已经链接了头)
  4. 重写调用 reorderSpinners() 的方法以删除该调用。
  5. 更换线路inflater.inflate(R.layout.date_picker, this, true); with inflater.inflate(my.package.R.layout.localized_date_picker, this, true);
  6. 将原始 date_picker.xml 布局复制到本地资源 localized_date_picker.xml
  7. 根据所需的顺序编辑文件,因为您正在编辑此文件,所以请尊重其他位置的本地化,并在全局布局文件夹中保留原始副本,并将 localized_date_picker.xml 放入您所在区域的特定文件夹中。由于系统的布局是月日年,其他地方的人可能会期望这样的顺序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:如何将 DatePicker 视图日期格式从 MM/dd/yyyy 更改为 dd/MM/yyyy? 的相关文章

随机推荐