1. ホーム
  2. アンドロイド

[解決済み】TextViewのスタイルをプログラムで設定する

2022-04-03 21:03:56

質問

を使おうとしているのですが TextView のコンストラクタを、このようなスタイルで使用することができます。

TextView myText = new TextView(MyActivity.this, null, R.style.my_style);

しかし、これを実行しても、テキストビューにはスタイルが反映されないようです(静的オブジェクトにスタイルを設定して検証しました)。

また myText.setTextAppearance(MyActivity.this, R.style.my_style) が、これもうまくいきません。

どうすればいいですか?

プログラムでスタイルを設定することはできないと思います。これを回避するには、スタイルを割り当てたテンプレート レイアウト xml ファイルを作成します。たとえば、res/layout に tvtemplate.xml を作成し、次の内容を記述します。

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is a template"
        style="@style/my_style" />

を作成し、これを膨らませて新しい TextView をインスタンス化します。

TextView myText = (TextView)getLayoutInflater().inflate(R.layout.tvtemplate, null);