我正在使用 Kotlin 制作 Android 应用程序。它包含应用程序主题颜色列表,以便用户可以从中选择一种颜色,然后我将该颜色保存在共享首选项中。
我已经完成了所有共享首选项和 XML 值的操作,并且我成功地在设置活动中顺利更改了主题,当我重新打开应用程序时,我在设置活动中成功找到了保存的颜色。
问题是:更改仅发生在设置活动上,而不是在整个应用程序中,如果我想影响所有活动,我应该在每个活动的
setTheme()
中使用 onCreat()
。
我不想这样做,因为我的应用程序有很多活动。
是否有更好的方法来实现这一目标。
我尝试在
setTheme()
类上调用 Application
方法,但它不起作用。
我知道您不想在每个活动中都这样做,但是对于活动来说,除了在每个活动中设置主题之外没有其他方法。
我建议您创建抽象父级,例如
BaseActivity
并在 setTheme()
内致电 onCreate()
。然后您将更新您的活动只是为了延长 BaseActivity
并确保您正在拨打 super.onCreate()
。
它比单独将代码粘贴到每个活动中更快,并且是更好、更可扩展的解决方案。