android - DatePickerDialog 月份显示为数字(Jan 为 1)
解决方案
public class NewDatePicker extends DatePicker {
public NewDatePicker(Context context, AttributeSet attrs) {
super(context, attrs);
Field[] fields = DatePicker.class.getDeclaredFields();
try {
for (Field field : fields) {
field.setAccessible(true);
if (TextUtils.equals(field.getName(), "mMonthPicker")) {
Method m = field.getType().getDeclaredMethod("setRange", int.class, int.class, String[].class);
m.setAccessible(true);
String[] s = new String[] {"01","02","03","04","05","06","07","08","09","10","11","12"};
m.invoke(field.get(this), 1, 12, s);
break;
}
}
}
catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
public NewDatePicker(Context context, AttributeSet attrs) {
super(context, attrs);
Field[] fields = DatePicker.class.getDeclaredFields();
try {
String[] s = new String[] {"01","02","03","04","05","06","07","08","09","10","11","12"};
for (Field field : fields) {
field.setAccessible(true);
if (TextUtils.equals(field.getName(), "mMonthSpinner")) {
NumberPicker monthPicker = (NumberPicker) field.get(this);
monthPicker.setDisplayedValues(s);
}
if (TextUtils.equals(field.getName(), "mShortMonths")) {
field.set(this, s);
}
}
}
catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
像这样使用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<my.pkg.NewDatePicker
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
推荐阅读
- json - 如何获取 | 将 json 数据加载到列表中
在 Flutter 中确实有效? - c# - C#打开一个excel工作簿后,如何防止用户在同一个excel实例中打开另一个excel文件(通过windows)?
- c# - 如何在 CefSharp 中获取特定 ChromiumWebBrowser 实例的远程调试 URL?
- ubuntu - Minikube 是否在 Ubuntu 19.10 虚拟机中运行?
- typescript - 可观察的嵌套回调
- r - 我可以将 xts 对象写入 excel,包括行名吗
- pandas - 按索引替换现有值
- javascript - 为什么 data-amp-bind-href 或 [href] 在 amp-bind 组件中不起作用?
- scripting - 通过脚本在 Spark AR 中使值动态化
- .net - 关于将应用程序从 .Net Framework 移植到 .Net core 的问题