重置Radio组内的单选按钮

时间:2017-04-28 11:16:56

标签: android xamarin.android radio-button toggle radio-group

如何重置收音机组内的单选按钮,如下面的图像示例

我的所有广播组及其单选按钮都是以编程方式创建的。

我尝试在更改前设置OnClickListener以获取单选按钮值,但是它没有帮助。

enter image description here

编辑:我在下面发布了答案,请检查一下。

3 个答案:

答案 0 :(得分:0)

你必须在检查另一个时取消选中一个单选按钮。

简单的方法。

public void clearRadioChecked() {
 alt1.setChecked(false);
 blt2.setChecked(false);

  }

如果你想选择alt1,那么点击alt1,如下所示。

 clearRadioChecked()
 alt1.setChecked(true);

答案 1 :(得分:0)

试试这个:

MAX_

xml layout

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
                if (checkedId == R.id.radioButton){
                 //do something     
                }
                else if(checkedId == R.id.radioButton2){

                }
                else{

                }
        });

答案 2 :(得分:0)

我就这样做了:

它在C#中,但我认为很容易将其转换为Java。

我用标签知道之前是否检查过这个单选按钮。

错误=>没有检查

True =>检查

radiobutton.Tag = false;

radiobutton.Click += SingleChoiceQuestionAlternativeClick;

然后:

private void SingleChoiceQuestionAlternativeClick(object sender, EventArgs e)
    {
        RadioButton questionAlternative = sender as RadioButton;

        if (questionAlternative != null)
        {
            RadioGroup questionAlternatives = questionAlternative.Parent as RadioGroup;

            if (questionAlternatives != null)
            {
                if (questionAlternative.Tag.Equals(false))
                {
                    for (int i = 0; i < questionAlternatives.ChildCount; i++)
                    {
                        RadioButton childRadioButton = questionAlternatives.GetChildAt(i) as RadioButton;

                        if (childRadioButton != null)
                        {
                            childRadioButton.Tag = false;
                        }
                    }

                    questionAlternative.Tag = true;
                }
                else
                {
                    questionAlternative.Tag = false;
                    questionAlternatives.ClearCheck();
                }
            }
        }
    }