【发布时间】:2022-06-17 06:14:00
【问题描述】:
我正在创建一个应用程序,其中包括一个集成的 GAD 测试 功能(用于计算和测量用户压力水平的自测)。看起来是这样的:
它由一个 Table 组成,其中包含多行 ToggleButtons。这是其中 1 个按钮的代码,例如:
<ToggleButton
android:id="@+id/row1_btn4"
android:layout_width="200px"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/button_border"
android:gravity="center"
android:paddingStart="10px"
android:paddingEnd="10px"
android:scaleX="0.5"
android:scaleY="0.65"
android:textColor="@color/white"
android:textOff=" "
android:textOn="✓"
android:textSize="28sp" />
这是检查按钮是否被选中的代码:
row1_btn4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
gadpoints += 3;
((DataSite) getActivity().getApplication()).setGadPoints(gadpoints);
} else if (!isChecked) {
gadpoints -= 3;
((DataSite) getActivity().getApplication()).setGadPoints(gadpoints);
} else {
gadpoints += 0;
((DataSite) getActivity().getApplication()).setGadPoints(gadpoints);
}
}
});
一切正常,如果切换按钮被选中,用户将获得给定的积分。但是,我想实现两件事:
a) 使每行中只有 1 个按钮 可以被选中,并且如果用户已经选中了 1 个,则阻止用户检查同一行中的另一个按钮
b) 检查一行按钮中是否没有一个被检查过,如果是,通知用户
我想不出一个可行的解决方案,因为我基本上会检查一个按钮是否未被选中,但话又说回来,其中一些是不被选中的。有什么想法吗?
【问题讨论】:
标签: java android togglebutton