2015-10-08 2 views
2

Привет, я хочу изменить цвет шрифта моего Time Picker. Я искал некоторые другие ответы в Stackoverflow. Но я не могу помочь себе в этом.Как изменить цвет шрифта для выбора времени в Android?

Мой целевой API - 19. Вот список вещей, которые я пробовал.

  1. Я пробовал добавлять стили в Styles.xml в значениях-v11 и значениях-v14 папок. Ниже приведен код

<!-- language: lang-xml --> <style name="MyTimePicker" parent="@android:style/Widget.Holo.DatePicker"> <item name="android:textColor">@color/main_font</item> </style>
Я пытался добавить его в папку значения также. Но я получаю следующую ошибку.

@android: стиль/Widget.Holo.DatePicker требует уровень API 11 (ток мин составляет 8)

Я добавил стили к моему TimePicker как

<TimePicker 
     android:id="@+id/alarm_timePicker" 
     style="@style/MyTimePicker" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

Ничего не изменилось.

2. Я попытался добавить код из Stackoverflow в свою деятельность. Ниже приведен код.

public static boolean setNumberPickerTextColor(TimePicker numberPicker) { 
    final int count = numberPicker.getChildCount(); 
    int color = R.color.main_font; 
    for (int i = 0; i < count; i++) { 
     View child = numberPicker.getChildAt(i); 
     if (child instanceof EditText) { 
     try { 
      Field selectorWheelPaintField = 
       numberPicker.getClass().getDeclaredField("mSelectorWheelPaint"); 
      selectorWheelPaintField.setAccessible(true); 
      ((Paint) selectorWheelPaintField.get(numberPicker)).setColor(color); 
      ((EditText) child).setTextColor(color); 
      numberPicker.invalidate(); 
      return true; 
     } catch (NoSuchFieldException e) { 
      //Log.w("setNumberPickerTextColor", e); 
     } catch (IllegalAccessException e) { 
      //Log.w("setNumberPickerTextColor", e); 
     } catch (IllegalArgumentException e) { 
      //Log.w("setNumberPickerTextColor", e); 
     } 
     } 
    } 
    return false; 
    } 

Когда я попытался ее отладки, я получил ошибку при установке представление содержимого в

попытка вызвать виртуальный метод «недействительным android.widget.NumberPicker.setOnValueChangedListener (android.widget.NumberPicker $ OnValueChangeListener) 'по нулевой ссылке на объект

ответ

0

Я сделал ту же ошибку. Я полагаю, вы сами нашли ответ, но для других: попробуйте изменить свой родительский стиль от @android:style/Widget.Holo.DatePicker до @android:style/Widget.Holo.TimePicker.

же трюк для @android:style/Widget.Material.Light.DatePicker, изменить его для @android:style/Widget.Material.Light.TimePicker