Привет всем! Есть такой чекбокс
CheckBox todo = new CheckBox(this);
todo.setText(task);
где task - это просто строка, например, "магазин"
вопрос - как можно сделать текст этого чекбокса зачёркнутым по нажатию? (слушатель уже на нём висит, я просто не могу понять\найти - как зачеркнуть текст, когда я поставил галочку)
Вам нужно в слушателе, если была поставлена галочка, из текста чекбокса создавать объект SpannableString, задавая ему стиль зачёркнутой строки. Потом передавать этот объект в чекбокс методом setText.
SpannableString string = new SpannableString(todo.getText());
string.setSpan(new StrikethroughSpan(), 0, string.length(), 0);
todo.setText(string);
Источник.
Так как CheckBox является наследником TextView, то зачеркнуть текст можно с помощью Paint флагов:
CheckBox todo = new CheckBox(this);
todo.setText(task);
todo.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) { // Устанавливаем флаг зачёркивания
buttonView.setPaintFlags(buttonView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else { // Убираем флаг зачёркивания
buttonView.setPaintFlags(buttonView.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
}
}
});
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости