由于有许多的RadioButton是动态的,不是固定的一些,所以需要在代码中,动态的添加到RadioGroup中,下面是我的实现方法。
for (int j = 0; j < 5; j++) {
RadioButton tempButton = new RadioButton(context);
tempButton.setButtonDrawable(context.getResources()
.getDrawable(android.R.color.transparent)); // 设置按钮的样式
tempButton.setBackground(context.getResources().getDrawable(
R.drawable.asthma_bg_radiobutton_selector));
tempButton.setPadding(AppUtil.dip2px(context, 16), 0, 0, 0); // 设置文字距离按钮四周的距离
tempButton.setTextColor(context.getResources().getColorStateList(R.drawable.asthma_text_color_selector));
tempButton.setText(j + " test");
tempButton.setTag(j);
tempButton
.setOnCheckedChangeListener(new RadioGroupChangeListener());
radioGroup.addView(tempButton,
LinearLayout.LayoutParams.MATCH_PARENT,
AppUtil.dip2px(context, 48));
}
发现在代码radioButton设置字体颜色是不能选中变色的,在xml里面设置是可以的,可以是要动态生成想要在代码里面直接设置,楞是没有效果。。。然后换成
ColorStateList colorStateList=context.getResources().getColorStateList(R.drawable.asthma_text_color_selector);
tempButton.setTextColor(colorStateList);
使用枚举出来颜色,这样setTextColor能显示出你想要的效果了。。。
上图