我試圖得到一個用戶選擇的主題,覺得我很沮喪地接近。定義在AndroidManifest.xml
的作品,因爲它應該,但(盡我可以告訴)主題不能改變基於應用程序的首選項:以編程方式切換應用程序範圍的主題?
<application
android:theme="@style/theme_sunshine"
android:icon="@drawable/icon"
android:label="@string/app_name">
另外,在每個活動動態設置它也適用:
someChosenTheme = PreferenceManager.getDefaultSharedPreferences(this).getString("themePreference", "theme_twilight");
setTheme(someOtherChosenTheme);
但這似乎很混亂,我寧願將整個應用程序的主題設置在一個地方。我首先想到的是儘快搶應用程序上下文作爲我的主要活動啓動並做到有:
getApplicationContext().setTheme(R.style.theme_dummy);
盡我可以告訴,this應該做的伎倆,但實際上它沒有做任何事情 - 在整個應用程序具有默認的Android風格。上述是否有效?如果是的話,我可能會做些別的什麼愚蠢的事情?
如果有問題,我正在API級別3中工作。在正確的方向刺激非常讚賞!
這基本上是我在做什麼。它仍然不理想,因爲沒有多重繼承,例如爲自定義ListActivity,但不便之處是輕微的。非常有幫助的教程,即使我已經閱讀它:) – Cheezmeister 2011-01-13 00:46:50