2014-01-06 61 views
0

我需要更改DatePicker的字體顏色,它被視爲日曆。我發現的所有答案都適合紡紗者的觀點。那麼有沒有辦法在日曆視圖中更改字體顏色?在日曆視圖中爲Android更改DatePicker的字體顏色

+0

http://stackoverflow.com/questions/18584934/custom-datepicker-in-android敬請期待在這個帖子 – 2014-01-06 12:32:06

+0

@ user3110424我想你誤解了我的問題。我已經有一個android:calendarViewShown =「true」的日期選擇器。我需要的是改變它的顏色 –

+0

https://github.com/SimonVT/android-datepicker。檢查它是否有幫助。和這個http://stackoverflow.com/questions/20148671/android-how-to-change-the-color-of-the-datepicker-divider它使用反射來改變分隔線的顏色。 – Raghunandan

回答

0

你可以做到這一點使用getDeclaredFields()方法

樣品:在這裏,我改變了TEXTSIZE和填充,它爲我工作。

DatePicker datepicker = (DatePicker) findViewById(R.id.datePicker); 

    try { 
     Field f[] = datepicker.getClass().getDeclaredFields(); 
     for (Field field : f) 
     { 
      if (field.getName().equals("mYearPicker")) 
      { 
       field.setAccessible(true); 
       Object yearPicker = new Object(); 
       yearPicker = field.get(datepicker); 
       ((View) yearPicker).setVisibility(View.VISIBLE); 
       ((View) yearPicker).setPadding(-2, 0, -2, 0); 

       View childpicker; 
       childpicker = (View) findViewById(Resources.getSystem().getIdentifier("year", "id","android")); 
       EditText textview = (EditText) childpicker.findViewById(Resources.getSystem().getIdentifier("timepicker_input", "id", "android")); 
       textview.setTextSize(26); 
       textview.setPadding(-3, 0, -3, 0); 

       //System.out.println("ss1:"+field); 
      } 

      if (field.getName().equals("mDayPicker")) 
      { 
       field.setAccessible(true); 
       Object yearPicker = new Object(); 
       yearPicker = field.get(datepicker); 
       ((View) yearPicker).setVisibility(View.VISIBLE); 
       ((View) yearPicker).setPadding(-2, 0, -2, 0); 


       View childpicker; 
       childpicker = (View) findViewById(Resources.getSystem().getIdentifier("month", "id","android")); 
       EditText textview = (EditText) childpicker.findViewById(Resources.getSystem().getIdentifier("timepicker_input", "id", "android")); 
       textview.setTextSize(26); 
       textview.setPadding(-3, 0, -3, 0); 

       //System.out.println("ss2:"+field); 
      } 

      if (field.getName().equals("mMonthPicker")) 
      { 
       field.setAccessible(true); 
       Object yearPicker = new Object(); 
       yearPicker = field.get(datepicker); 
       ((View) yearPicker).setVisibility(View.VISIBLE); 
       ((View) yearPicker).setPadding(-2, 0, -2, 0); 

       View childpicker; 
       childpicker = (View) findViewById(Resources.getSystem().getIdentifier("day", "id","android")); 
       EditText textview = (EditText) childpicker.findViewById(Resources.getSystem().getIdentifier("timepicker_input", "id", "android")); 
       textview.setTextSize(26); 
       textview.setPadding(-3, 0, -3, 0); 
       //System.out.println("ss3:"+field); 
      } 
      //System.out.println("ss:"+field); 


     } 
    } catch (SecurityException e) { 
     Log.d("ERROR", e.getMessage()); 
    } catch (IllegalArgumentException e) { 
     Log.d("ERROR", e.getMessage()); 
    } catch (IllegalAccessException e) { 
     Log.d("ERROR", e.getMessage()); 
    }catch (Exception e) { 
     Log.d("ERROR", e.getMessage()); 
    } 
+0

您確定您的代碼對於android:calendarViewShown =「true」的DatePicker有效嗎? –

+0

從未嘗試過'android:calendarViewShown =「true」'但它僅適用於日期選擇器 –