RadioButton-CheckBox组合

时间:2012-03-28 23:51:29

标签: java android radio-button

对于我的特定应用程序,我希望能够通过触摸来打开和关闭单选按钮,类似于复选框。但是,我需要radiobuttons在他们的组中互斥。有64个按钮和8个组,所以我不想使用复选框并手动编程切换功能。我可以使用onTouchListener()和radiobutton吗?有没有办法实现这个目标? 提前感谢您的支持。

1 个答案:

答案 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小部件并为其提供所需的语义。这不是我在这里描述的范围。