2012-06-17 38 views
0

我在RadioGroups方面有點麻煩。 我在佈局中創建了一個空白的radiogroup。 然後在代碼中填充均衡器預設。 然後我嘗試使用radiogroup.check(1)設置其中一個選項。 但它拋出一個空指針異常。RadioGroup.check(int)無法正常工作

下面是代碼:

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中增加孩子的。 我是什麼提前

回答

3

完成繞我猜

 RadioButton o = (RadioButton) rgEqualizer.getChildAt(1); 
     o.setChecked(true); 
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 
+0

編輯的工作......但,這不是他的問題 – reiley