首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RadioButton isChecked控制状态

RadioButton isChecked控制状态
EN

Stack Overflow用户
提问于 2015-02-19 13:12:54
回答 1查看 90关注 0票数 0

下面是这样的情况:我有4个radioButtons,不是radioGroup的成员。这是因为在默认情况下,RadioGroup会将子对象按垂直顺序排列,并且现在不能将它们相对于每个other.Right放置,所以我将检查所有的radioButtons。我想要实现的是控制他们的检查状态,这样当一个被选中时(真),其他的被选中状态被自动设置为false。小部件是独立的布局元素,所以我想我必须找到一种将它们组合在一起的方法。我尝试用一个简单的RadioButton if函数编写4个if..else变量,使用isChecked和setChecked内置方法。然后,我尝试将它们分组到一个Radiobutton[]数组中,然后用开关-case循环循环到array.length。毫无办法。现在堆叠两天。任何帮助都很感激。

谢谢你的答复,我进一步解释。我有4个imageViews和4个radioButtons正好低于一个RelativeLayout的父级,这样用户就可以选择他喜欢的图像。imageViews不是垂直放置的,radioButtons也不是垂直放置的。这就是为什么我不想使用radioGroup。我可以使用LinearLayout并将imageViews置于垂直方向,并将radioButtons放在一个组中,就在它们旁边。默认情况下,每个radioButton选中的状态都是假的,并且当我检查它时,它将变为true。问题是,我可以检查所有的radioButtons。我想要的是当我选择一个RadioButton时,其他的被自动取消检查,这样在任何时候只能检查一个。下面是片段:

代码语言:javascript
复制
    private RadioButton rbtnWater;
    private RadioButton rbtnRoad;
    private RadioButton rbtnBoy;
    private RadioButton rbtnLeft;

    rbtnWater = (RadioButton) findViewById(R.id.rbtnWater);
    rbtnRoad = (RadioButton) findViewById(R.id.rbtnRoad);
    rbtnBoy = (RadioButton)findViewById(R.id.rbtnBoy);
    rbtnLeft = (RadioButton) findViewById(R.id.rbtnLeft)

          //method called at onClick attribute (XML)
      public void checkState(View v) {

      if (rbtnWater.isChecked()) {
          rbtnLeft.setChecked(false);
          rbtnBoy.setChecked(false);
          rbtnRoad.setChecked(false);
      }
      else if (rbtnLeft.isChecked()) {
          rbtnBoy.setChecked(false);
          rbtnWater.setChecked(false);
          rbtnRoad.setChecked(false);
      }
      else if (rbtnBoy.isChecked()) {
          rbtnWater.setChecked(false);
          rbtnRoad.setChecked(false);
          rbtnLeft.setChecked(false);
      }
      else if (rbtnRoad.isChecked()) {
          rbtnWater.setChecked(false);
          rbtnBoy.setChecked(false);
          rbtnLeft.setChecked(false);
      }
    }
EN

回答 1

Stack Overflow用户

发布于 2015-02-19 13:20:17

  • 不清楚什么不起作用,请详细说明。
  • 尽管如此,我还是建议您更改技术并使用RadioGroup,只需将其扩展并修改到您需要的内容,或者从AOSP获取它的源代码,而不是让它扩展一个LinearLayout,您可以扩展您希望使用的其他东西。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28607345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档