android中setTheme中的一個問題
轉載自: http://site.douban.com/android/widget/notes/110027/note/120907913/
2010-12-17 19:25:06
在android程序設計中我們可以更換主題(Theme),有兩種方法,一種是在主程序中使用setTheme()函數,傳入相應的參數,另一種是在AndroidManifest.xml中直接指定,這裏主要講第一種方法,也是最常用的。
一般來說,對程序外觀屬性操作的函數都會在onCreate()調用之後被調用,但是這個setTheme()函數有點奇怪,如果,把它放在onCreate()之後調用,它就不會生效(但並不產生任何錯誤和警告),一定要放在onCreate()之前調用才行,以下是代碼片段:
setTheme()放在onCreate()之後,無效
|
以及style.xml的內容:
我們會發現效果沒有出來,setTheme()調用失效:
setTheme失效
|
於是查了下資料,論壇上的朋友反映這個問題要用過把setTheme()放在onCreate()之前調用:
setTheme()放在onCreate()之前,有效
|
以下是運行結果:
setTheme生效
|
按照常理來說,setTheme()這種設置屬性的函數放在onCreate()之後調用應該沒有問題,因爲它並不影響程序運行,但是上述這個問題確實存在,原因也不是很清楚。