对于我的特定应用程序,我希望能够通过触摸来打开和关闭单选按钮,类似于复选框。但是,我需要radiobuttons在他们的组中互斥。有64个按钮和8个组,所以我不想使用复选框并手动编程切换功能。我可以使用onTouchListener()
和radiobutton吗?有没有办法实现这个目标?
提前感谢您的支持。
答案 0 :(得分:1)
您正在寻找既不是复选框也不是单选按钮的UI范例。您最好的选择是使用复选框,然后在此基础上实现互斥。如,
myCheckbox1.setOnCheckChangedListener(new OnCheckChangedListener() {
@Override
public void onCheckChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
myCheckbox2.setChecked(false);
myCheckbox3.setChecked(false);
myCheckbox4.setChecked(false);
// start playback
} else {
// stop playback
}
}
);
请注意,如果您能够枚举每个组的所有按钮ID,则可以编写代码,例如,
if (isChecked) {
int myGroup = (Integer) buttonView.getTag(); // Define the group in the view's tag
for (int id: groups.get(myGroup)) {
if (id != buttonView.getId()) ((CompoundButton) findViewById(id)).setChecked(false);
}
另一个更复杂的答案是构建自己的UI小部件并为其提供所需的语义。这不是我在这里描述的范围。