Witam, mam taki problem tworze aplikację planner, chce by w niej użytkownik miał do wyboru kilka motywów kolorystycznych.
Zostały już przygotowane przyciski oraz Theme w stylach.
Problem polega na tym, poniższy kod pozwala mi zmienić kolory aplikacji pod jednym przyciskiem CIEMNY lecz nie znalazłem sposobu by tą metody przenieść na inne przyciski.
Kolejnym problemem jest że kolorystyka zostaje zmieniona w oknie zmiany motywu, inne okna zostają w starszej kolorystyce
Z góry wielkie dzięki
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.app.AppCompatDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.Switch;
import java.io.BufferedReader;
public class motywy_Activity extends AppCompatActivity {
private Switch ciemny,czerwony,niebieski,teczowy;
SharedPref sharedPref;
@Override
protected void onCreate(Bundle savedInstanceState) {
sharedPref = new SharedPref(this);
if(sharedPref.loadNightModeState()==true){
setTheme(R.style.ciemny_motyw);
}
else if(sharedPref.loadCzerwonyModeState()==true){
setTheme(R.style.czerwony_motyw);
}
else if(sharedPref.loadNiebieskiModeState()==true){
setTheme(R.style.AppTheme);
}
else if(sharedPref.loadTeczowyModeState()==true){
setTheme(R.style.teczowy_motyw);
}
else {
setTheme(R.style.AppTheme);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_motywy_);
ciemny = (Switch) findViewById(R.id.switch4);
czerwony = (Switch) findViewById(R.id.switch5);
niebieski = (Switch) findViewById(R.id.switch3);
teczowy = (Switch) findViewById(R.id.switch6);
if(sharedPref.loadNightModeState()==true){
ciemny.setChecked(true);
}
if(sharedPref.loadCzerwonyModeState()==true){
czerwony.setChecked(true);
}
if(sharedPref.loadNiebieskiModeState()==true){
niebieski.setChecked(true);
}
if(sharedPref.loadTeczowyModeState()==true){
teczowy.setChecked(true);
}
ciemny.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
sharedPref.setNightModeState(true);
restartApp();
}
else {
sharedPref.setNightModeState(false);
restartApp();
}
}
});
czerwony.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(isChecked){
sharedPref.setCzerwonyModeState(true);
restartApp();
}
else {
sharedPref.setCzerwonyModeState(false);
restartApp();
}
}
});
niebieski.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(isChecked){
sharedPref.setNiebieskiModeState(true);
restartApp();
}
else {
sharedPref.setNiebieskiModeState(false);
restartApp();
}
}
});
teczowy.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(isChecked){
sharedPref.setTeczowyModeState(true);
restartApp();
}
else {
sharedPref.setTeczowyModeState(false);
restartApp();
}
}
});
}
public void restartApp(){
Intent i = new Intent(getApplicationContext(), motywy_Activity.class);
startActivity(i);
finish();
}
}