Дневная и ночная тема
Я создал отельный класс SharePref
public class SharedPref {
public static final String APP_PREFERENCES = "mysettings";
public static final String NIGHT_MODE = "NightMode";
public static final String APP_PREFERENCES_COUNTER = "counter";
SharedPreferences mySharedPref ;
public SharedPref(Context context) {
mySharedPref = context.getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);
}
// this method will save the nightMode State : True or False
public void setNightModeState(Boolean value) {
SharedPreferences.Editor editor = mySharedPref.edit();
editor.putBoolean(NIGHT_MODE,value);
editor.apply();
}
// this method will load the Night Mode State
public Boolean loadNightModeState (){
return mySharedPref.getBoolean(NIGHT_MODE,false);
}
}
После я создал активити Settings_app в котором расположен код который должен менять тему на день и ночь. но при изменений темы тема меняется но при перезапуска приложений тема не сохраняется.
public class Settings_App extends AppCompatActivity {
CheckBox day_night_switch;
public static SharedPref sharedPref;
@Override
protected void onCreate(Bundle savedInstanceState) {
sharedPref = new SharedPref(this);
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_settings);
day_night_switch = findViewById(R.id.switch_day_night);
if (sharedPref.loadNightModeState()) {
day_night_switch.setChecked(true);
}
day_night_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
sharedPref.setNightModeState(true);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
day_night_switch.setChecked(true);
} else {
sharedPref.setNightModeState(false);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
day_night_switch.setChecked(false);
}
}
});
Ответы (1 шт):
Автор решения: Bayram Komekov
→ Ссылка
Супер я сам нашел ответ на свой вопрос))) спасибо за совет тоже помог очень)) Просто надо было написать этот код в других активи:
sharedPref = new SharedPref(this);
if(sharedPref.loadNightModeState()==true){
sharedPref.setNightModeState(true);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
sharedPref.setNightModeState(false);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}