Выберите и отмените выбор всех микросхем внутри ChipGroup программно в Android

#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()