我已尝试在RadioButton
中以编程方式设置文本样式,但它们只设置了大小和颜色。但是,如果我通过XML设置样式它可以正常工作。我尝试在TextView
相同的情况下设置样式。我做错了什么?
Java代码:
public class YourProgOneApps extends Activity implements OnClickListener {
RadioGroup radioGender, radioTarget, radioWhere;
RadioButton man, woman, build_muscle, fat_loss, keep_in_good_shape, gym, home;
TextView textView2;
Button btnExeProgOne;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_prog1);
radioGender = (RadioGroup) findViewById(R.id.radioGender);
man = (RadioButton) findViewById(R.id.man);
woman = (RadioButton) findViewById(R.id.woman);
textView2 = (TextView) findViewById(R.id.textView2);
textView2.setTextAppearance(getApplicationContext(), R.style.radio_chek_f_pre_f);
man.setTextAppearance(this, R.style.radio_chek_f_pre_f);
radioTarget = (RadioGroup) findViewById(R.id.radioTarget);
radioWhere = (RadioGroup) findViewById(R.id.radioWhere);
}
public void onClick(View v) {}
}
style.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="android:Theme.Light" />
<style name="radio_chek_f_pre_f">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:background">@drawable/radio_right</item>
<item name="android:button">@null</item>
<item name="android:textColor">#b4b4b4</item>
<item name="android:textSize">20sp</item>
<item name="android:shadowColor">#ffffff</item>
<item name="android:shadowDx">1</item>
<item name="android:shadowDy">1</item>
<item name="android:shadowRadius">1</item>
<item name="android:gravity">center_horizontal</item>
</style>
</resources>
答案 0 :(得分:0)
如果您在UI线程上,请尝试调用invalidate(),如果您不在UI线程上,请尝试调用postInvalidate()。
在您的示例中,您似乎位于UI线程上,因此请尝试在该textview上调用Invalidate。
这应该强制它重绘,虽然我想setTextAppearance会自动执行此操作,但值得一试。