[解決済み] Androidで実行時に現在のテーマを変更する方法 [重複]について
2022-05-01 18:42:01
質問
アプリケーション全体に適用するテーマをユーザーが選択できるPreferenceActivityを作成しました。
ユーザーがテーマを選択すると、以下のコードが実行されます。
if (...) {
getApplication().setTheme(R.style.BlackTheme);
} else {
getApplication().setTheme(R.style.LightTheme);
}
しかし、コードが実行されていることをデバッガで確認しても、ユーザーインターフェイスに変化が見られません。
テーマは
res/values/styles.xml
そして、Eclipseは何のエラーも表示しません。
<resources>
<style name="LightTheme" parent="@android:style/Theme.Light">
</style>
<style name="BlackTheme" parent="@android:style/Theme.Black">
</style>
</resources>
何が起こっているのか、どのように修正すればいいのか、何か思い当たることはありませんか?
私は
setTheme
をコード内の特別な場所で使用することはできますか?私のアプリケーションは、いくつかのアクティビティで構成されています。
どのように解決するのですか?
すべてのアクティビティに一度だけ設定する方法も見てみたいです。しかし、私が知る限り、ビューを表示する前に、各アクティビティで設定する必要があります。
参考までにこちらをご確認ください。
http://www.anddev.org/applying_a_theme_to_your_application-t817.html
編集(そのフォーラムからコピー)。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Call setTheme before creation of any(!) View.
setTheme(android.R.style.Theme_Dark);
// ...
setContentView(R.layout.main);
}
編集
を呼び出すと
setTheme
の後に
super.onCreate(savedInstanceState);
を呼び出すと、アクティビティは再作成されます。
setTheme
の前に
super.onCreate(savedInstanceState);
テーマが設定され、アクティビティ
はもう再作成されません。
protected void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme_Dark);
super.onCreate(savedInstanceState);
// ...
setContentView(R.layout.main);
}
関連
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで現在の時刻と日付を取得する方法
-
[解決済み] Android Studioのテーマを変更・追加する方法を教えてください。
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
gitlab 設定エラー。リモートリポジトリから読み込めなかったか、ホストキーの検証に失敗しました。
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
プログラム "git.exe "を実行できない場合の正しい解決方法です。CreateProcessエラー=2
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
を作ってください。*** makeするルールがない エラーの原因、分析、解決策
-
Google PlayデバイスはPlay保護機構の認証を受けていません。
-
問題 ---- Android ---- ActivityManager: Error: アクティビティクラス{xx/xx.MainActivity}が存在しない
-
AndroidStudioのショートカット 検索/置換
-
android.content.ActivityNotFoundException を解決します。Intent問題を処理するActivityが見つからない
-
[解決済み] プログラムによるActivityのテーマ変更