我需要知道如何通过按两个按钮在应用程序的所有活动中将blackTheme更改为白色主题(光主题),一个用于黑色主题,另一个用于白色主题。我知道如何在清单中设置主题并在OnCreate
方法上设置主题...但是要动态更改我不知道!! =(
有人可以帮帮我吗?
obs:我知道如何更改(在运行时)我的应用程序按钮的颜色......除非背景!
答案 0 :(得分:2)
我想您在setTheme()
回调方法setContentView()
之前调用onCreate()
来设置主题。如果你在setTheme()
之后拨打setContentView()
,你将不得不重新启动活动..我在运行时没有经验更改主题......但无论如何,我可以想到类似的东西:
public void onCreate(Bundle savedInstanceState) {
int theme = getIntent().getIntExtra("theme", <INSERT DEFAULT THEME.. MAYBE FROM PREFS>);
setTheme(theme);
super.onCreate(savedInstanceState);
setContentView(R.layout.notes_list)
}
“light-theme”按钮使用存储在intent中的新主题值重新启动活动:
public void onClickLightButton(View view) {
finish();
Intent i = getIntent();
i.putExtra("theme", android.R.style.Theme_Light);
startActivity(i);
}