gpt4 book ai didi

android - 在不重新创建 Activity 的情况下更改 Activity 的主题

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:28 28 4
gpt4 key购买 nike

我有一个 Activity 。在单击按钮时,我想更改主题,但在任何地方我都发现主题只能设置一次,而且在 setContentView 之前也是如此。重新开始一项 Activity 对我来说不是一个选择。也许使用 attrs 必须对这个问题做些什么。但我不知道如何使用它。请帮忙!!

提前致谢!

最佳答案

不,那是不可能的,来自the relevant documentation :

public void setTheme (int resid)

Set the base theme for this context. Note that this should be called before any views are instantiated in the Context (for example before calling setContentView(View) or inflate(int, ViewGroup)).

因此您必须在调用setContentView() 之前使用setTheme() 设置主题,之后将无法更改。您唯一的选择是重新创建 Activity


顺便说一句:您说重新创建 Activity 不是一个选项似乎很奇怪,Activity 有一个明确定义的生命周期并且通过坚持这个生命周期,应该可以重新创建 Activity 您或 Android OS 想要的频率。事实上,您应该知道您的 Activity 可以随时被 Android 操作系统终止和重新创建,这实际上是 Android 的正常和预期行为。因此,重新创建 Activity 不是一种选择,这似乎表明您的应用程序设计中存在更深层次的问题,如果不解决,该问题无论如何都会显现出来。

关于android - 在不重新创建 Activity 的情况下更改 Activity 的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483640/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com