前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

テキストのStyleを動的に変更する

課題

値が設定済みだったらdisabledになるようにテキストのスタイルを変更したい

対応

Styleの動的な変更は結構面倒なのだが、android:textAppearanceなど、スタイルを引数に取るタイプの
属性についてはそのメソッドを使うことでスタイルの変更が簡単にできる。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    holder.label?.setTextAppearance(R.style.text_disabled)
} else {
    holder.label?.setTextAppearance(context, R.style.text_disabled)
}

追記:TextViewCompatを使えば1行で書けることを発見

TextViewCompat.setTextAppearance(holder.subtext!!, R.style.text_disabled)