我有一个活动。在单击按钮时我想更改主题,但我发现主题只能设置一次,而且在 setContentView 之前也是如此。
重新开始一项活动对我来说不是一个选择。也许使用 attrs 可以解决这个问题。但我不知道如何使用它。请帮忙!!
提前致谢!!
不,这是不可能的,从相关文件 http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme(int):
公共无效setTheme(int resid)
设置此上下文的基本主题。请注意,这应该被称为
在上下文中实例化任何视图之前(例如之前
调用 setContentView(View) 或 inflate(int, ViewGroup))。
所以你必须设置主题setTheme()
打电话之前setContentView()
,之后就无法更改了。您唯一的选择是重新创建Activity
.
作为旁白:你说重新创建Activity
不是一个选项看起来很奇怪,Activities
有一个明确定义的生命周期,并且通过遵守这个生命周期,应该可以重新创建Activity
您或 Android 操作系统想要多久一次。事实上你应该知道你的Activity
Android 操作系统可以随时杀死并重新创建,这实际上是 Android 的正常且预期的行为。这样就可以重新创建Activity
不是一个选项似乎表明您的应用程序设计中存在一个更深层次的问题,如果不解决,该问题无论如何都会显现出来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)