Вы должны сохранить значение где-нибудь, например, в базе данных или в общих настройках.
Прежде чем применить setTheme(THEME);
Вы должны получить это значение.
Это начальное значение:
public static int THEME = R.style.Theme_Sherlock;
Сначала установите значение (например, «темный») и перезапустите приложение:
DBAdapter db = new DBAdapter(this);
try {
db.open();
db.UpdateOption("theme", "dark");
}
catch (Exception ex) {}
finally {
db.close();
}
finish();
Intent intent = new Intent(this, ActionBarTabsPager.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Затем вы получите новое значение и установите ТЕМУ
DBAdapter db = new DBAdapter(this);
Cursor c = null;
try {
db.open();
c = db.GetOption(c, "theme");
String theme = c.getString(1);
if (theme.equalsIgnoreCase("dark")) {
THEME = R.style.Theme_Sherlock;
}
else if (theme.equalsIgnoreCase("light")) {
THEME = R.style.Theme_Sherlock_Light;
}
else if (theme.equalsIgnoreCase("darklight")) {
THEME = R.style.Theme_Sherlock_Light_DarkActionBar;
}
}
catch (Exception ex) {}
finally {
try {
if (c != null)
{
c.close();
c = null;
}
}
catch (Exception ex){}
db.close();
}
setTheme(THEME);
У меня есть табуляции ОПЦИИ для сохранения некоторых настроек. Конечно, это также можно сделать с общими настройками.