Как изменить Black Theme на White Theme во время выполнения? - PullRequest
0 голосов
/ 27 октября 2011

Мне нужно знать, как изменить BlackTheme на White Theme (light Theme) во всех видах деятельности приложения, нажав две кнопки, одна для черной темы, а другая для белой. Я знаю, как установить темы в манифесте и установить темы на OnCreate Метод ... но динамически менять я не знаю !! = (* * Тысяча два

Может кто-нибудь помочь мне, пожалуйста?

obs: я знаю, как изменить (во время выполнения) цвет кнопок моего приложения ... кроме фона!

1 Ответ

2 голосов
/ 27 октября 2011

Полагаю, вы устанавливаете тему, вызывая 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" возобновляет действие с новым значением темы, которое хранится в намерении:

public void onClickLightButton(View view) {
    finish(); 
    Intent i = getIntent();
    i.putExtra("theme", android.R.style.Theme_Light);
    startActivity(i);
}
...