私は活動をしています。ボタンをクリックすると、テーマを変更したいのですが、どこでも、テーマを一度しか設定できないことがわかりました。活動を再開することは、私にとって選択肢ではありません。おそらく attrs を使用すると、この問題を解決する必要があります。しかし、私はそれを使用する方法がわかりません。助けてください!!
前もって感謝します!!
私は活動をしています。ボタンをクリックすると、テーマを変更したいのですが、どこでも、テーマを一度しか設定できないことがわかりました。活動を再開することは、私にとって選択肢ではありません。おそらく attrs を使用すると、この問題を解決する必要があります。しかし、私はそれを使用する方法がわかりません。助けてください!!
前もって感謝します!!
いいえ、関連するドキュメントから、それは不可能です:
public void setTheme (int resid)
このコンテキストの基本テーマを設定します。これは、コンテキストでビューがインスタンス化される前に呼び出す必要があることに注意してください (たとえば、setContentView(View) または inflate(int, ViewGroup) を呼び出す前)。
setTheme()
したがって、を呼び出す前にテーマを設定する必要がありsetContentView()
、その後は変更できません。唯一の選択肢は、Activity
.
余談Activity
ですが、再作成はオプションではないとおっしゃっていますActivities
が、明確に定義されたライフサイクルがあり、このライフサイクルを順守することで、Activity
あなたまたは Android OS が必要とする頻度を再作成できるはずです。Activity
実際、Android OS によっていつでも強制終了され、再作成される可能性があることを知っておく必要があります。これは、実際には Android の正常で予期される動作です。そのため、再Activity
作成はオプションではなく、アプリの設計に根深い問題があり、解決されない場合はいずれにせよ顕在化する可能性があることを示しているようです。