こんにちは、私はAndroid/Kotlin/Ankoを新しくしています。Anko内の色のリソースにアクセスする方法に関する質問があります。Kotlin&Ankoを使用してリソースIDにアクセスする
私は、あなたは、単にリソース文字列を設定する処理を簡素化するR.string.my_color
が、どのようView
クラスからResources
インスタンスを使用して色をアクセスについてを渡すtextResource
のようなヘルパーがあることを知っていますか?
サブクラスがButton
で、テキストの色を変更したいとします。 textResource
を使用すると、色ではなくテキスト文字列が変更されます。textColor
を使用する場合は、resources.getColor(R.color.my_color, null)
を使用して実際のリソースIDを指定する必要があります。これは、オプションのテーマパラメータを渡す必要がない場合(null
ここをクリック)
Resources
に拡張機能を作成していますか?
fun Int.fromResources(resources: Resources): Int {
return resources.getColor(this, null)
}
推奨される方法は何ですか?
EDIT
私はこれは本当にアンドロイド優しい
var android.widget.TextView.textColor: Int
get() = throw AnkoException("'android.widget.TextView.textColor' property does not have a getter")
set(v) = setTextColor(resources.getColor(v, null))
代わりに 'resources.getColor(v、null)'の代わりに 'ContextCompat.getColor(context、R.color.color_id)'を使うことをお勧めします。 –