我有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)
}
}
}
我现在完全迷失了。
答案 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);
(对不起,我的英语不好)