【发布时间】:2020-05-10 15:44:08
【问题描述】:
用例:我正在制作一个类别选择器,用户必须从具有多个芯片的芯片组中选择 5 个芯片。用户不能选择超过 5 个筹码。
我的筹码组码:
<com.google.android.material.chip.ChipGroup
android:id="@+id/category_chip_group"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
>
<com.google.android.material.chip.Chip
android:id="@+id/tech_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Technology"/>
<com.google.android.material.chip.Chip
android:id="@+id/sports_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sports and Fitness"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"/>
<com.google.android.material.chip.Chip
android:id="@+id/public_speakin_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Public Speaking"/>
<com.google.android.material.chip.Chip
android:id="@+id/biz_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Business and careers"/>
<com.google.android.material.chip.Chip
android:id="@+id/read_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Reading and Writing"/>
<com.google.android.material.chip.Chip
android:id="@+id/yoga_med_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Yoga and meditation"/>
<com.google.android.material.chip.Chip
android:id="@+id/sing_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Singing"/>
<com.google.android.material.chip.Chip
android:id="@+id/dance_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Dancing"/>
<com.google.android.material.chip.Chip
android:id="@+id/food_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Food Blogging"/>
<com.google.android.material.chip.Chip
android:id="@+id/gaming_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Gaming"/>
<com.google.android.material.chip.Chip
android:id="@+id/beauty_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Beauty and Makeup"/>
<com.google.android.material.chip.Chip
android:id="@+id/fashion_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Fashion and Lifestyle"/>
<com.google.android.material.chip.Chip
android:id="@+id/photography_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Photography"/>
<com.google.android.material.chip.Chip
android:id="@+id/music_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Music"/>
<com.google.android.material.chip.Chip
android:id="@+id/movies_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Movies and TV shows"/>
<com.google.android.material.chip.Chip
android:id="@+id/travel_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Travel"/>
<com.google.android.material.chip.Chip
android:id="@+id/art_and_design_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true"
app:chipBackgroundColor="@drawable/bg_chip_list"
android:text="Art and design"/>
</com.google.android.material.chip.ChipGroup>
我的芯片选择java代码
Chip chip = (Chip) category_chips.getChildAt(i);
if (chip.isChecked()) {
Log.e("i", "" + i);
i = i + 1;
categories.add(chip.getText().toString());
if (i > 5) {
chip.setChecked(false);
chip.setSelected(false);
}
}
我想将所选芯片中的字符串添加到数组列表中 这段代码是我所做的尝试之一。我是初学者,我不知道如何实现此功能
请帮助我了解如何在 java 中实现这个用例。我在 stackoverflow 上尝试了很多答案,但没有找到一个满足我用例的答案。
【问题讨论】:
标签: java android material-components-android material-components android-chips