如何在运行时将黑色主题更改为白色主题?

时间:2011-10-27 12:38:41

标签: android android-manifest

我需要知道如何通过按两个按钮在应用程序的所有活动中将blackTheme更改为白色主题(光主题),一个用于黑色主题,另一个用于白色主题。我知道如何在清单中设置主题并在OnCreate方法上设置主题...但是要动态更改我不知道!! =(

有人可以帮帮我吗?

obs:我知道如何更改(在运行时)我的应用程序按钮的颜色......除非背景!

1 个答案:

答案 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);
}