I'm already using setTheme() in onCreate() like:
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
data = Utility.GetTheme(this);
if(data.isDarktheme())
setTheme(R.style.DarkTheme);
else
setTheme(R.style.LightTheme);
setContentView(R.layout.activity_options);
...
So if I use recreate() in the activity:
switch_theme.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked)
setTheme(R.style.DarkTheme);
else
setTheme(R.style.LightTheme);
saveTheme();
recreate();
}
});
My app freezes as I read in another question that it goes into an infinite loop. Is there any way to fix this, preferably with keeping that setTheme() in the beginning of onCreate()?