Checkbox (прапорець)
Компонент CheckBox є прапорцем, за допомогою якого користувач може відзначити (поставити галочку) певну опцію. Дуже часто прапорці використовуються в настройках, коли потрібно вибірково вибрати певні пункти, необхідні для комфортної роботи користувача.
Компонент знаходиться в групі Widgets
Для управління станами прапорця використовуйте методи setChecked () або togglе (). Щоб дізнатися про стан прапорця, викличте властивість isChecked.
Якщо буде потрібно задіяти специфічну логіку, відповідно до якої прапорець буде включатися або вимикатися, зареєструйте подія, викликавши setOnCheckedChangeListener () з реалізацією інтерфейсу OnCheckedChangeListener. Потім буде потрібно реалізувати метод onCheckedChanged (). який буде викликатися при зміні стану прапорця.
Для експериментів скористаємося програмою «Лічильник ворон», яку писали при вивченні клацання кнопки.
Як ви пам'ятаєте, в програмі була кнопка і текстове поле. Додамо ще два елементи CheckBox. а також чотири текстові мітки TextView. Нам потрібно постаратися, щоб елементи були акуратно згруповані. Для цієї мети скористаємося вкладеними компонуваннями LinearLayout. Заодно можна застосувати цікавий прийом - ми не будемо використовувати текст у прапорців CheckBox, а скористаємося текстовими мітками з різними розмірами шрифтів. Верхня мітка з великим шрифтом буде вказувати на основну функціональність прапорця, а нижня мітка з дрібним шрифтом буде використовуватися в якості своєрідної підказки, в якій міститься додаткова інформація для користувача.
Запустіть проект і спробуйте знімати і ставити галочки у прапорців в різних комбінаціях, щоб побачити, як змінюється текст після клацання кнопки. Код дуже простий - перевіряється властивість isChecked. Якщо галочка у прапорця встановлена, то властивість повертає true і ми міняємо колір (червоний) або стиль тексту (жирний). Якщо прапорець не зазначено, то властивість повертає false. і ми використовуємо стандартні настройки тексту.



власні стилі
Якщо ви використовуєте стандартний проект, то прапорець буде використовувати кольори Material Design, зокрема колір colorAccent для фону прапорця.
У файлі res / values / styles.xml додамо рядки:
Властивість colorControlNormal відповідає за прямокутник в невибраний стані, а colorControlActivated за зафарбований прямокутник в обраному стані.
Надаємо створений стиль атрибуту android: theme:
Тепер кольору прапорців змінилися.

власний вид
Якщо вас не влаштовує стандартний вид елементів CheckBox. то не складе ніяких труднощів реалізувати свої уявлення про дизайн.
В папці res / drawable створюємо файл checkbox_selector.xml:
Також необхідно підготувати два зображення для двох станів прапорців - обраний і не обраний. У нашому випадку це дві зірки - сіра і жовта.
Залишилося прописати селектор в компоненті CheckBox (атрибут android: button):
Готово! Можете запускати проект і перевіряти роботу прапорців. Нижче код для реагування на зміну стану прапорців:

