我有什么
我有一个主要活动和一个活动设置。用户可以从主活动移动到设置。在设置活动中,用户可以为应用选择主题。现在我有一个应用程序的主要活动。
当用户选择主题时,我已完成并重新启动该活动以立即反映更改。
但是当用户按下后退按钮时,他将被带到主要活动。
问题
调用onResume()
方法而不是onCreate()
。因此setTheme()
上的onCreate()
方法也不会被调用。所以这里没有反映主题变化。那么我应该怎样做才能在theme
中进行main activity
更改。
我基本上需要确保在主题更改发生时始终调用onCreate()
的{{1}}。
答案 0 :(得分:0)
onResume()
方法中调用recreate()
recreate link
@Override
protected void onResume() {
// TODO Auto-generated method stub
...........
recreate();
}
答案 1 :(得分:0)
尝试使用boolean
:
public class MainActivity extends Activity {
public boolean toBeRecreated;
@Override
public void onResume() {
if (toBeRecreated) { recreate(); }
}
}
当然,您需要在用户更改主题时设置MainActivity.toBeRecreated = true
。