今天发现一个android开发的一个小问题,应该可以算是小BUG,测试环境2.1 SDK Update1

在android程序设计中我们可以更换主题(Theme),有两种方法,一种是在主程序中使用setTheme()函数,传入相应的参数,另一种是在AndroidManifest.xml中直接指定,这里主要讲第一种方法,也是最常用的。

一般来说,对程序外观属性操作的函数都会在onCreate()调用之后被调用,但是这个setTheme()函数有点奇怪,如果,把它放在onCreate()之后调用,它就不会生效(但并不产生任何错误和警告),一定要放在onCreate()之前调用才行,以下是代码片段:

android中setTheme中的一个问题
setTheme()放在onCreate()之后,无效


以及style.xml的内容:

android中setTheme中的一个问题


我们会发现效果没有出来,setTheme()调用失效:

android中setTheme中的一个问题
setTheme失效


于是查了下资料,论坛上的朋友反映这个问题要用过把setTheme()放在onCreate()之前调用:

android中setTheme中的一个问题
setTheme()放在onCreate()之前,有效


以下是运行结果:

android中setTheme中的一个问题
setTheme生效


按照常理来说,setTheme()这种设置属性的函数放在onCreate()之后调用应该没有问题,因为它并不影响程序运行,但是上述这个问题确实存在,原因也不是很清楚。


http://site.douban.com/widget/notes/110027/note/120907913/

相关文章:

  • 2021-12-19
  • 2021-05-19
  • 2021-08-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2021-10-20
猜你喜欢
  • 2021-08-08
  • 2022-02-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-17
相关资源
相似解决方案