2015-08-07 2 views
0

Я добавляю предпочтения программным способом к моему экземпляру PreferenceScreen (который я добавляю к своей PreferenceActivity). Все работает, как ожидалось для цвета текста, который всегда является белым, за исключением несмотря на попытки:Как изменить цвет текста предпочтений программным путем?

  • Чтобы установить тему через манифест
  • установить тему программного образом
  • Несколько других хак, которые не примечателен

Все, что я делаю:

PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(this); 

    PreferenceCategory category = new PreferenceCategory(this); 
    category.setTitle("Hello"); 

    screen.addPreference(category); 

    CheckBoxPreference testPreference = new CheckBoxPreference(getApplicationContext()); 
    testPreference.setTitle("Test"); 
    category.addPreference(testPreference); 

    setPreferenceScreen(screen); 

Я установил тему для ThemeOverlay.AppCompat.Dark (который я не хочу), и текст разборчиво, но это то, что она выглядит как и в любом другом случае (я коснувшись его, так что вы можете увидеть текст через эффект анимации): enter image description here

Как я могу сделать этот текст черным?

Спасибо!

+0

Какую тему использует ваша деятельность (в манифесте)? Если это тема, которую вы определили, какая тема для Android расширяет ее? – Karakuri

+0

Я не использую тему, и, похоже, тема, которую я продлеваю или изменяю, textColor всегда белый. – Edwin

ответ

0

Простого исправление, на самом деле:

я назвал в CheckBoxPreference testPreference = new CheckBoxPreference(getApplicationContext());getApplicationContext(), который не рекомендуется для накачивания вида, как это почти всегда проходит неправильную тему.

Итак, я изменил getApplicationContext() на this, и он загрузил цвет текста как то, что было описано в теме.

Смежные вопросы