这个问题与this one类似,但这个问题略有不同。
我使用for循环在每个组内创建了15个RadioGroups和4个单选按钮。
?grep
这是广播听众代码:
for(int i=0; i<15; i++) {
RadioGroup radioGroup = new RadioGroup(getActivity());
radioGroup.setOrientation(RadioGroup.HORIZONTAL);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f);
radioGroup.setLayoutParams(lp);
radioGroup.setId(i+1);
for(int j=0; j<4; j++) {
RadioButton radioButton = new RadioButton(getActivity());
radioGroup.addView(radioButton);
}
radioGroup.setOnCheckedChangeListener(radioListener);
}
以上代码负责异常。根据Android开发人员的说法,final RadioGroup.OnCheckedChangeListener radioListener = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
RadioButton radio = (RadioButton) rootView.findViewById(checkedId);
String selectedValue = radio.getText().toString();
}
};
是
新检查的单选按钮的唯一标识符
此代码的问题在于它有时会起作用,并且在其他时间不起作用。总共有15个无线电组,所以如果我从第2组到第15组选择无线电按钮,它将显示没有错误并且一切都将完美执行但是当我选择第一个无线电组的第一个单选按钮时,它会抛出异常 - 无法投射checkedId
至android.widget.radiogroup