#android #android-studio #material-components-android #android-chips
#Android #android-studio #материал-компоненты-android #android-чипы
Вопрос:
У меня есть группа микросхем, и внутри нее я программно добавляю выбранные микросхемы, и у меня есть кнопка «Выбрать все» для выбора всех, если некоторые из них выбраны, и та же кнопка для отмены выбора всех микросхем одним щелчком мыши.
Теперь, пожалуйста, укажите мне какой-нибудь правильный путь, или было бы здорово, если бы это можно было сделать с помощью chip group вместо ArrayList of chip Заранее спасибо 🙂
Ответ №1:
Для отмены выбора вы можете использовать clearCheck, а для выбора вы должны пройти цикл for
Комментарии:
1. Да, это помогает мне. Спасибо 🙂
Ответ №2:
Я создал общую функцию расширения для вышеупомянутого решения в kotlin, я думаю, что это правильное решение
fun ChipGroup.applyCheckedOnAll(isChecked: Boolean){
if (isChecked){
for (index in 0 until this.childCount) {
val chip:Chip = this.getChildAt(index) as Chip
chip.isChecked = true
}
}else {
this.clearCheck()
}
}
Ответ №3:
ChipGroup chipGroup = view.findViewById(R.id.chipGroup );
for (int i = 0; i < chipGroup.getChildCount(); i ) {
Chip chip = (Chip) chipGroup.getChildAt(i);
chip.setChecked(false);
}
Комментарии:
1. Хотя этот фрагмент кода может дать решение вопроса, лучше добавить контекст относительно того, почему / как это работает. Это может помочь будущим пользователям ссылаться и в конечном итоге применять эти знания к своему собственному коду. Вы также, вероятно, получите положительные отзывы / положительные отзывы от пользователей, когда будет объяснен код.
Ответ №4:
Очищает выделение. Когда выбор будет снят, ни одна микросхема в этой группе не будет выбрана chipgroup.clearCheck()