Как проверить положение кнопки в Android MaterialButtonToggleGroup
Я определил MaterialButtonToggleGroup
с 2 MaterialButton
в моем xml таким образом:
<com.google.android.material.button.MaterialButtonToggleGroup
...
app:checkedButton="@+id/favorite_color1"
app:singleSelection="true">
<com.google.android.material.button.MaterialButton
android:id="@+id/favorite_color1"
... />
<com.google.android.material.button.MaterialButton
android:id="@+id/favorite_color2"
... />
</com.google.android.material.button.MaterialButtonToggleGroup>
я нашел getCheckedButtonIds()
метод (который возвращает список идентификаторов) и OnButtonCheckedListener
(который возвращает целочисленный идентификатор), но get(int index)
метод возвращает представление в позиции индекса, а не представление с определенным идентификатором.
Как я могу получить (программно) вид отмеченной кнопки в данный момент? Есть метод, возвращающий текущую проверенную позицию (или индекс)?
1 ответ
Поскольку вы используете app:singleSelection="true"
вы можете использоватьgetCheckedButtonId()
метод для получения уникального идентификатора выбранного MaterialButton
в этой группе.
Вы можете использовать что-то вроде:
MaterialButtonToggleGroup materialButtonToggleGroup =
findViewById(R.id.toggle_button_group);
int buttonId = materialButtonToggleGroup.getCheckedButtonId();
MaterialButton button = materialButtonToggleGroup.findViewById(buttonId);
Вы также можете использовать getCheckedButtonIds()
и перебрать идентификаторы.
List<Integer> ids = materialButtonToggleGroup.getCheckedButtonIds();
for (Integer id:ids){
MaterialButton materialButton = materialButtonToggleGroup.findViewById(id);
//....
}