android - 如何在 Android DatePicker 中设置自定义月份的名称?

标签 android datepicker

如何在 Android DatePicker 中设置自定义月份的名称? 例如:new String[]{"一月", "二月", ... }。

最佳答案

您可以像这样创建一个扩展系统类 DatePicker 的自定义 DatePicker:

class MyCustomDatePicker extends DatePicker {
    public MyCustomDatePicker(Context context, AttributeSet attrs) {
         super(context, attrs);
         Field[] fields = DatePicker.class.getDeclaredFields();
         try {
             String[] s = new String[] {"January","February","March","April","May","June","July","August","September","October","November","December"};
             for (Field field : fields) {
                 field.setAccessible(true);
                 if (TextUtils.equals(field.getName(), "mMonthSpinner")) {
                      NumberPicker monthPicker = (NumberPicker) field.get(this);
                      monthPicker.setMinValue(0);
                      monthPicker.setMaxValue(11);
                      monthPicker.setDisplayedValues(s);
                 } 
                 if (TextUtils.equals(field.getName(), "mShortMonths")) {
                      field.set(this, s);
                 }
              }
       }
       catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
       }
    }
}

然后您需要在 xml 布局中将 DatePicker 声明为您的自定义 datePicker,例如:

<?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" >

    <com.your.project.package.MyCustomDatePicker
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/myDatePicker" />
</LinearLayout>

关于android - 如何在 Android DatePicker 中设置自定义月份的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30892777/

相关文章:

jquery-ui - jQuery ui - datepicker 防止刷新 onSelect

javascript - 如何格式化 Jon Leighton 的 jquery.date_input.pack 上的日期?

javascript - 从 js 代码中清除 Kendo DatePicker 时,Angular 模型未更改

android - 致命异常 : java. lang.NumberFormatException

java - EditText leftView 图片适合Android EditText的大小

android - 为在 Libgdx android 中支持多个屏幕提供资源

android - 在没有 Java 的情况下创建 Android 应用程序

javascript - Angular 12 日期选择器

android - 找不到leakcanary-analyzer.aar,也找不到可用的网址

jquery - Bootstrap 日期选择器在选择后隐藏