2015-06-17 71 views

回答

1

您可以创建一个扩展的系统类的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(); 
     } 
    } 
} 

然后你需要声明的DatePicker作为您的自定义日期选择器的XML布局像这样的例子:

<?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> 
+0

有没有解决方案来访问mShortMonths而不使用反射? –

+0

我认为答案是否定的,但如果别人知道的更好,请纠正我 –

相关问题