android中setTheme中的一个问题
今天发现一个android开发的一个小问题,应该可以算是小BUG,测试环境2.1 SDK Update1 在android程序设计中我们可以更换主题(Theme),有两种方法,一种是在主程序中使用setTheme()函数,传入相应的参数,另一种是在AndroidManifest.xml中直接指定,这里主要讲第一种方法,也是最常用的。 一般来说,对程序外观属性操作的函数都会在onCreate()调用之后被调用,但是这个setTheme()函数有点奇怪,如果,把它放在onCreate()之后调用,它就不会生效(但并不产生任何错误和警告),一定要放在onCreate()之前调用才行,以下是代码片段:
setTheme()放在onCreate()之后,无效
|
以及style.xml的内容:
我们会发现效果没有出来,setTheme()调用失效:
setTheme失效
|
于是查了下资料,论坛上的朋友反映这个问题要用过把setTheme()放在onCreate()之前调用:
setTheme()放在onCreate()之前,有效
|
以下是运行结果:
setTheme生效
|
按照常理来说,setTheme()这种设置属性的函数放在onCreate()之后调用应该没有问题,因为它并不影响程序运行,但是上述这个问题确实存在,原因也不是很清楚。
http://site.douban.com/widget/notes/110027/note/120907913/
Tiwer