Android:以编程方式更改RadioButtons的样式

时间:2011-06-09 09:10:39

标签: android radio-button

如何在选定状态下更改单选按钮的背景图像。我已经使用了checkBoxes的代码并且它可以工作,但是对于Radio Buttons不起作用。这是我的代码片段:

RadioGroup radioGroup = new RadioGroup(context);
for ( int i = 0; i < lst.size(); i++ ){
    // Radiobuttons 
    RadioButton radioButton = new RadioButton(context);
    radioButton.setId(i);
    radioButton.setButtonDrawable(myDrawable);
    radioButton.setText(myTxt);
    radioGroup.addView(radioButton, i, layoutParams);

}

this.addView(radioGroup); 

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
    StateListDrawable myStates = new StateListDrawable();
    int stateSelected = android.R.attr.state_selected;
    myStates.addState(new int[]{ -stateSelected }, myDrawable2);

    RadioButton  r = (RadioButton) group.getChildAt(checkedId);
    r.setButtonDrawable(myStates);
}

1 个答案:

答案 0 :(得分:0)

您可以使用state-list drawable定义不同的背景图像,具体取决于窗口小部件的状态。您可以这样做,而不是以编程方式更改后台资源。

可以找到关于此问题的教程here