RadioGroup.check(int)不起作用

时间:2012-06-17 07:35:38

标签: java android

我对RadioGroups有点麻烦。 我在布局中创建了一个空白的无线电组。 然后在代码中用均衡器预设填充它。 然后我尝试使用radiogroup.check(1)设置其中一个选项。 但它抛出了空指针异常。

以下是代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.equalizer);
    //rgEqualizer = (RadioGroup) findViewById(R.id.rgEqualizerPreset);
    mPlayer = new MediaPlayer();
    mEqualizer = new Equalizer(0, AuID);
    rgEqualizer = new RadioGroup(this);
    radioButtonList = new ArrayList<RadioButton>();
    layoutParams = new RadioGroup.LayoutParams(
        RadioGroup.LayoutParams.FILL_PARENT,
        RadioGroup.LayoutParams.WRAP_CONTENT);

    fillRadioGroupWithRadioButtons();
    rgEqualizer.setEnabled(true);
    rgEqualizer.setOnCheckedChangeListener(this);
    addContentView(rgEqualizer, layoutParams);
    loadPresetsettings();
}
private void fillRadioGroupWithRadioButtons() {
    Short noPresets = mEqualizer.getNumberOfPresets();
    short i = 0;
    while (i < noPresets) {
        RadioButton rb = new RadioButton(this);
        rb.setText(mEqualizer.getPresetName(i));
        rgEqualizer.addView(rb, layoutParams);
        i++;
    }
}
private void loadPresetsettings() { 
    rgEqualizer.check(1);
}

似乎即使在添加子单选按钮fillRadioGroupWithRadioButtons()之后,在radiogroup中也没有添加子项。 我缺少什么/

提前致谢

2 个答案:

答案 0 :(得分:4)

完成一项工作我想

        RadioButton o = (RadioButton) rgEqualizer.getChildAt(1);
        o.setChecked(true);

答案 1 :(得分:0)

您已在代码中定义了两次rgEqualizer。

    rgEqualizer = (RadioGroup) findViewById(R.id.rgEqualizerPreset);   <----- Here
    mPlayer = new MediaPlayer();
    mEqualizer = new Equalizer(0, AuID);
    rgEqualizer = new RadioGroup(this);   <---- And here //Delete this