アクティビティを再作成せずにアクティビティのテーマを動的に変更したいのですが、私が見つけた唯一の解決策はアイテムのプロパティ (背景、テキストカラーなど) を変更することですが、ListView
いくつかのアイテムがあり、すべてのアイテムを反復処理できますListView
。変更textColor
しますが、それはちょっと醜い解決策だと思います。
これを達成するためのより良い方法はありますか?
前もって感謝します
アクティビティを再作成せずにアクティビティのテーマを動的に変更したいのですが、私が見つけた唯一の解決策はアイテムのプロパティ (背景、テキストカラーなど) を変更することですが、ListView
いくつかのアイテムがあり、すべてのアイテムを反復処理できますListView
。変更textColor
しますが、それはちょっと醜い解決策だと思います。
これを達成するためのより良い方法はありますか?
前もって感謝します
getView()
Adaptersメソッドで次のようなことができます。
int theme = getThemeColorFromPrefrences();
if(theme == darkTheme){
textView.setTextColor(...);
}
else{...}
ユーザーが色を変更するたびに、次のように呼び出すだけinvalidateViews()
ですListView
。
// set other theme color [...]
myListView.invalidateViews()
ListView の行に独自のレイアウトを使用でき、レイアウト ファイルでテキストの色を指定できます。