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

Android, iOSアプリ開発に関する調査メモ置き場。ほとんど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)