0

RadioGroups に少し問題があります。レイアウトに空のラジオグループを作成しました。そして、コード内のイコライザー プリセットで埋めました。次に、radiogroup.check(1) を使用してオプションの 1 つを設定しようとしました。しかし、null ポインター例外がスローされました。

以下はコードです:

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() を追加した後でも、ラジオ グループに子が追加されていないようです。何が足りない/

前もって感謝します

4

2 に答える 2

4

私が推測する回避策で完了

        RadioButton o = (RadioButton) rgEqualizer.getChildAt(1);
        o.setChecked(true);
于 2012-06-17T09:58:43.767 に答える
0

コードで rgEqualizer を 2 回定義しています。

    rgEqualizer = (RadioGroup) findViewById(R.id.rgEqualizerPreset);   <----- Here
    mPlayer = new MediaPlayer();
    mEqualizer = new Equalizer(0, AuID);
    rgEqualizer = new RadioGroup(this);   <---- And here //Delete this
于 2012-06-17T07:52:15.193 に答える