use*_*627 3 android android-theme declare-styleable
我有活动。在按钮上单击,我想更改主题,但是到处都发现,该主题只能设置一次,而在setContentView之前也可以设置。重新启动活动不是我的选择。也许使用attrs必须解决此问题。但是我不知道如何使用它。请帮忙!!
提前致谢!!
根据相关文档,这是不可能的:
公共无效setTheme(int resid)
为此上下文设置基本主题。请注意,应在Context中实例化任何视图之前(例如,在调用setContentView(View)或inflate(int,ViewGroup)之前)调用此方法。
因此,您必须setTheme()在调用之前设置主题setContentView(),之后就无法更改它。您唯一的选择是重新创建Activity。
顺便说一句:您说重新创建Activity不是一个选项似乎很奇怪,Activities具有明确的生命周期,并且通过遵循此生命周期,应该可以重新创建Activity您或Android OS想要的频率。实际上,您应该知道自己随时Activity可以被Android OS杀死并重新创建,这实际上是Android的正常现象。因此,重新创建Activity不是一种选择,这似乎表明您的应用程序设计中存在一个更深层次的根源问题,如果不解决的话,它仍然会表现出来。
| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |