以编程方式设置的主题。如何重新加载 Activity 以应用
Posted
技术标签:
【中文标题】以编程方式设置的主题。如何重新加载 Activity 以应用【英文标题】:Theme Programmatically set. How to reload Activity to apply 【发布时间】:2012-03-15 19:33:12 【问题描述】:如何在不重新启动整个应用程序的情况下应用主题?如果我使用startActivity(getIntent()); finish();
执行此操作,则 Activity 会退出并且不会重新启动。是否可以简单地重新启动/重新创建 Activity 以应用主题?
【问题讨论】:
【参考方案1】:它的顺序不正确。
finish();
intent = new Intent(this, <your_activity>.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这是正确的顺序。
可以在调用super.onCreate(savedInstanceState);
之前设置主题。您需要销毁活动并再次创建它并立即在 onCreate() 中调用setTheme(THEME);
【讨论】:
您对这个问题有答案吗? ***.com/questions/9686912/…【参考方案2】:Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
【讨论】:
以上是关于以编程方式设置的主题。如何重新加载 Activity 以应用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 中以编程方式强制重启/重新加载 Playback 设备?
如何在 Holo 主题 Api 11-17 Android 中以编程方式将 EditText 背景设置为默认值