Как изменить цвет шрифта Time Picker в Android?

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

Мой целевой API — 19. Вот список того, что я пробовал.

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

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

Для @android:style/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;
    }

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

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


person HBHBHB    schedule 08.10.2015    source источник


Ответы (2)


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

Тот же трюк для @android:style/Widget.Material.Light.DatePicker, поменяйте его на @android:style/Widget.Material.Light.TimePicker

person A. Ferrand    schedule 21.09.2016

Цвета текста — это значения textColorPrimary и textColorSecondary вашей темы. Таким образом, вы можете создать такой стиль:

<style name="myTheme" parent="Theme.AppCompat.NoActionBar">

    <item name="android:textColorPrimary">#e90d8a</item>
    <item name="android:textColorSecondary">@color/white_primary_text</item>

   // The rest of your customization.

</style>

И в своей деятельности используйте метод setTheme.

person Simple UX Apps    schedule 29.05.2018