Оновлення AppCompat та чорні чекбокси в PreferenceActivity, AzaGroup – команда розробників
Після того, як перейшов на target API 22 і почав використовувати відповідний AppCompat, помітив, що вPreferenceActivityна Android 4.+ стали неправильно відображатися чекбокси. Вони відображалися чорним кольором, у той час як мали бути блідо-блакитними, як на Lollipop:

Причина в тому, що я використовувавPreferenceActivityв застарілому (починаючи з API 21) режимі, додаючи xml-ку налаштувань через метод addPreferencesFromResource в самому активіті. Наразі такий режим більше не підтримується.
Правильний підхід, у тому числі з використанням headers, описаний у документації до PreferenceActivity. Якщо коротко, то потрібно використовуватиPreferenceFragment. І його можна буде додавати у будь-якій Activity. У найпростішому вигляді це виглядає так:
ОднакPreferenceFragmentз'явився лише в API 11, і якщо необхідно підтримувати попередні версії, потрібно шукати кастомнийPreferenceFragment, оскільки Support Library для Android такого класу чомусь не має. Особисто я використовую PreferenceFragment від kolavar. Підключаємо його як модуль (там є ресурси), керуємо імпорт у класі MyPrefsFragment , і коригуємо MyPrefsActivity :
Готово. Тепер навіть можна стилізувати ці чекбокси під загальний дизайн за допомогою вказівки атрибуту colorAccent у темі програми: