Androidでは、アクティビティの現在のテーマをResource.Theme
オブジェクトとしてgetTheme()
から取得できます。また、他のテーマのリソースID(setTheme(R.style.Theme_MyTheme)
など)を使用してテーマを別のテーマに設定することもできます。Android:現在のテーマのリソースIDを取得するには?
しかし、それが価値があるかどうか、現在のテーマがすでに設定したいテーマであるかどうかをどのようにして知ることができますか?
protected void onResume() {
int newThemeId = loadNewTheme();
if (newThemeId != getTheme().getResourceId()) { // !!!! How to do this?
setTheme(newThemeId);
// and rebuild the gui, which is expensive
}
}
任意のアイデア:私のような何かを書くために、getTheme().getResourceId()
のようなものを探していますか?ここ
私はリソースIDがテーマクラスの寄稿者だとは思わない。テーマはreource xmlファイルから作成される可能性がありますが、IDへの参照は失われます。テーマそのものが変更される可能性があり、特定のリソースIDと結びつけることは意味を持ちません。さらに、テーマはオンザフライでコード内に作成できます。現在のテーマにはどのリソースIDが使用されたのかを把握しておく必要があります。 – Anderson
この回答が役に立ちます。これをチェックアウトしてくださいhttp://stackoverflow.com/a/26302184/4639479 –