【发布时间】:2018-09-25 04:47:43
【问题描述】:
【问题讨论】:
-
你做了什么显示代码sn-p
标签: android radio-button togglebutton radio-group android-togglebutton
【问题讨论】:
标签: android radio-button togglebutton radio-group android-togglebutton
它不起作用可能是因为所有 RadioButtons 没有分组在一起,因为它们之间有一些 View。
RadioButton 应该是 RadioGroup 的直接子级,否则分组不起作用。
【讨论】:
用户一次只能选择一个切换按钮。
在您给定链接上选定的answer 中可用的代码正在做同样的工作。为了可视化这一点,请更改一些代码。
在 XML 中
在 ToggleButton 中,将 android:textOn 和 android:textOff 更改为“on”和“off”(仅作为示例)。您的 XML 文件应如下所示:
<RadioGroup android:id="@+id/toggleGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:orientation="horizontal"
>
<ToggleButton android:id="@+id/btn1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"
android:textSize="14sp"
android:textOn="on"
android:textOff="off"
android:onClick="onToggle"
android:checked="true"
/>
<ToggleButton android:id="@+id/btn2"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"
android:textSize="14sp"
android:textOn="on"
android:textOff="off"
android:checked="false"
android:onClick="onToggle"
/>
</RadioGroup>
这应该是这样的:
在 Java 文件中
在您的活动中,编写以下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((RadioGroup) findViewById(R.id.toggleGroup)).setOnCheckedChangeListener(ToggleListener);
}
static final RadioGroup.OnCheckedChangeListener ToggleListener = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final RadioGroup radioGroup, final int i) {
for (int j = 0; j < radioGroup.getChildCount(); j++) {
final ToggleButton view = (ToggleButton) radioGroup.getChildAt(j);
view.setChecked(view.getId() == i);
}
}
};
public void onToggle(View view) {
((RadioGroup)view.getParent()).check(view.getId());
// write your specific code here ..
Toast.makeText(this, "Toggle button clicked", Toast.LENGTH_SHORT).show();
}
当您在另一个(切换按钮)处于“开启”状态时单击“关闭”,“关闭”将变为“开启”,反之亦然。因此用户一次只能选择一个切换按钮。如果一个切换按钮处于打开状态,则另一个将始终处于关闭状态。
【讨论】: