如何在 Android MaterialButtonToggleGroup 中获取选中的按钮位置
How to get checked button position in Android MaterialButtonToggleGroup
我在我的 xml 中定义了一个 MaterialButtonToggleGroup
和 2 MaterialButton
,这样:
<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()
方法(returns 一个 ID 列表)和 OnButtonCheckedListener
(returns 一个整数 ID),但是 get(int index)
method returns索引位置的View,不是某个id的View。
如何(以编程方式)在给定时刻获取选中按钮的视图?
有一种方法returns当前检查的位置(或索引)?
由于您使用的是 app:singleSelection="true"
,因此您可以使用 getCheckedButtonId()
方法获取该组中所选 MaterialButton
的唯一 ID。
您可以使用类似的东西:
MaterialButtonToggleGroup materialButtonToggleGroup =
findViewById(R.id.toggle_button_group);
int buttonId = materialButtonToggleGroup.getCheckedButtonId();
MaterialButton button = materialButtonToggleGroup.findViewById(buttonId);
您也可以使用 getCheckedButtonIds()
并循环访问 ID。
List<Integer> ids = materialButtonToggleGroup.getCheckedButtonIds();
for (Integer id:ids){
MaterialButton materialButton = materialButtonToggleGroup.findViewById(id);
//....
}
我在我的 xml 中定义了一个 MaterialButtonToggleGroup
和 2 MaterialButton
,这样:
<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()
方法(returns 一个 ID 列表)和 OnButtonCheckedListener
(returns 一个整数 ID),但是 get(int index)
method returns索引位置的View,不是某个id的View。
如何(以编程方式)在给定时刻获取选中按钮的视图? 有一种方法returns当前检查的位置(或索引)?
由于您使用的是 app:singleSelection="true"
,因此您可以使用 getCheckedButtonId()
方法获取该组中所选 MaterialButton
的唯一 ID。
您可以使用类似的东西:
MaterialButtonToggleGroup materialButtonToggleGroup =
findViewById(R.id.toggle_button_group);
int buttonId = materialButtonToggleGroup.getCheckedButtonId();
MaterialButton button = materialButtonToggleGroup.findViewById(buttonId);
您也可以使用 getCheckedButtonIds()
并循环访问 ID。
List<Integer> ids = materialButtonToggleGroup.getCheckedButtonIds();
for (Integer id:ids){
MaterialButton materialButton = materialButtonToggleGroup.findViewById(id);
//....
}