2

でプログラムでテキストのスタイルを設定しようとしました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>
4

1 に答える 1

0

UIスレッドを使用している場合はinvalidate()を呼び出し、UIスレッドを使用していない場合はpostInvalidate()を呼び出してみてください。

あなたの例では、UIスレッドを使用しているように見えるので、そのテキストビューでInvalidateを呼び出してみてください。

これにより、強制的に再描画されるはずです。setTextAppearanceがこれを自動的に実行すると思いますが、一見の価値があります。

于 2013-02-26T13:28:17.590 に答える