我对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中也没有添加子项。 我缺少什么/
提前致谢
答案 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