如何获取单选按钮ID并使用结果影响另一组单选按钮

时间:2019-05-06 17:44:07

标签: android radio-button fragment

我有4个单选按钮,即片段1中的A,B,C和D。我正在使用saveInstanceState将选择移到片段2,而片段2具有单选按钮a,b,c和d。如果希望选择“ A”,我希望能够预先选择“ a”,如果选择“ B”,则希望具有“ b”,依此类推。我该怎么办。

到目前为止,我在片段1中有这个内容:

// Storing the selection
bundle.putString("argument", frequencyGroup.getCheckedRadioButtonId());

在片段2中进行了部分尝试

// Search through the bundle to get the ID and preselect in Fragment 2
radioGroup = view.findViewById(R.id.frequency_group);
        if(bundle!=null && bundle.containsKey("argument")){
            for (int i = 0; i <= radioGroup.getChildCount()-1 ; i++){
                String id = frequencyGroup.getChildAt(i).getId();
                if (id.equals(bundle.getString("argument"))){
                    // Somehow find the radio button with the above id
// and have it checked (need help here)
                }

            }
        }

我现在完全迷失了。

1 个答案:

答案 0 :(得分:0)

也许在单选按钮中使用tag属性可以帮助您。

在两个片段onCreate()设置标签中的

for (int i = 0; i <= radioGroup.getChildCount()-1 ; i++){
  frequencyGroup.getChildAt(i).setTag("mRadio" + String.valueOf(i));
}

当传递到第二个片段时,使用此:

bundle.putString("argument", frequencyGroup.getCheckedRadioButtonId().getTag());

然后在第二个片段中获取用于按标签查找的参数:

String mTag = ""
if(bundle!=null && bundle.containsKey("argument")){
   mTag = bundle.getString("argument");
}

然后找到控件并设置选择:

RadioButton mRadio = (RadioButton)findViewWithTag(mTag);
mRadio..setChecked(true);

(对不起,我的英语不好)