Java 单选按钮复选框组合

Java 单选按钮复选框组合,java,android,radio-button,Java,Android,Radio Button,对于我的特定应用程序,我希望能够通过触摸来打开和关闭radiobutton,类似于复选框。但是,我需要单选按钮在它们的组中相互排斥。有64个按钮和8个组,所以我不想使用复选框和手动编程切换功能。我可以使用带有单选按钮的onTouchListener()?有没有办法做到这一点? 提前感谢您的支持。您正在寻找一种既不是复选框也不是单选按钮的UI范例。您的最佳选择是使用复选框,然后在此基础上实现相互排他性。e、 g myCheckbox1.setOnCheckChangedListener(new O

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

您正在寻找一种既不是复选框也不是单选按钮的UI范例。您的最佳选择是使用复选框,然后在此基础上实现相互排他性。e、 g

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小部件,并提供您想要的任何语义。这不是我在这里所能描述的范围。

您正在寻找一种既不是复选框也不是单选按钮的UI范例。您的最佳选择是使用复选框,然后在此基础上实现相互排他性。e、 g

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小部件,并提供您想要的任何语义。这不是我在这里所能描述的范围。

单选按钮根据其定义,在一个组中是相互排斥的。我不明白你在问什么。我想能够触摸一个单选按钮并取消选中它,类似于复选框。但是如果你使用单选按钮组,一个或另一个按钮应该一直处于启用状态。不启用按钮的正确方法是在该组中有一个额外的单选按钮,称为“无选择”或类似按钮。这在任何形式上都不是一个普通的android应用程序。用户没有做出选择,而是用单选按钮触发音频样本。我希望能够通过再次触摸来关闭样本,但不能同时关闭所有样本。根据其定义,单选按钮在一个组中是相互排斥的。我不明白你在问什么。我想能够触摸一个单选按钮并取消选中它,类似于复选框。但是如果你使用单选按钮组,一个或另一个按钮应该一直处于启用状态。不启用按钮的正确方法是在该组中有一个额外的单选按钮,称为“无选择”或类似按钮。这在任何形式上都不是一个普通的android应用程序。用户没有做出选择,而是用单选按钮触发音频样本。我希望能够通过再次触摸来关闭样本,但不是一次关闭所有样本。我非常感谢您的帮助,但正如我提到的,我有64个按钮,分为8组。手动操作会非常不方便。你不必手动操作。如果按钮在数组中,则可以循环关闭除选定按钮之外的所有按钮。这是几行代码。无论如何,你不会从一个单选按钮中得到你想要的东西。我非常感谢你的帮助,但是正如我提到的,我有64个按钮,分为8组。手动操作会非常不方便。你不必手动操作。如果按钮在数组中,则可以循环关闭除选定按钮之外的所有按钮。这是几行代码。不管怎样,你不会从单选按钮上看到你想要的东西。