2012-07-31 2 views
0

Я создал приложение, в котором я могу переключаться между двумя темами (черно-белый) нажатием кнопки. И я установил тему по умолчанию как белую в манифесте.Android сохранение состояния приложения после применения темы

Таким образом, каждый раз, когда приложение закрывается и перезапускается, состояние темы не сохраняется, а применяется белая тема.

Может ли кто-нибудь дать мне какую-нибудь идею или код, если это возможно, о том, как сохранить состояние приложения, различные методы для этого?

Thank you.

+0

http://stackoverflow.com/questions/151777/ save-activity-state-in-android –

ответ

2

Имейте булевский триггер, который вы проверяете для SharedPreferences. Если логическое значение true, установите для приложения значение белого. Если false, черный. Каждый раз, когда пользователь меняет тему, которую он/она хочет, сохраните логическое значение в SharedPreferences.

Пример кода:

В OnCreate():

SharedPreferences mPrefs = getSharedPreferences("THEME", 0); 
boolean theme_boolean = mPrefs.getBoolean("theme_boolean", true); 
if (theme_boolean) { 
    // Set theme to white 
} else { 
    // Set theme to black 
} 

В OnClick данной кнопки():

if (theme_boolean) { 
    // Set theme to black 
    theme_boolean = false; 
} else { 
    // Set theme to white 
    theme_boolean = true; 
} 
SharedPreferences mPrefs = getSharedPreferences("THEME", 0); 
SharedPreferences.Editor mEditor = mPrefs.edit(); 
mEditor.putBoolean("theme_boolean", theme_boolean).commit(); 
+0

Спасибо .... где я могу сохранить его в пределах активности..fr, например, я могу сохранить его в onPause() или любом другом методе? – crtn

+0

Я добавил образец кода для вас :). Сообщите мне, если это работает/если у вас есть проблемы. – Mxyk

+0

Спасибо. Это сработало :) – crtn

Смежные вопросы