繁体   English   中英

RadioButton-CheckBox组合

[英]RadioButton-CheckBox Combo

对于我的特定应用程序,我希望能够通过触摸它来打开和关闭单选按钮,类似于复选框。 但是,我需要单选按钮在它们的组中互斥。 有64个按钮和8个组,所以我不想使用复选框并手动设置切换功能。 我可以将onTouchListener()onTouchListener()按钮一起使用吗? 有什么办法可以做到这一点? 预先感谢您的支持。

您正在寻找既不是复选框也不是单选按钮的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小部件,并为其提供所需的任何语义。 不过,这不在我可以描述的范围之内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM