Итак, я хочу сделать CheckBoxPreference для включения ночного режима в osmdroid, но код ни к чему не приводит. Я сделал то же самое без PreferenceScreen, обычный LinearLayout с переключателем, он работал хорошо, но я хотел использовать предпочтение. Кто-нибудь знает, что не так?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.allgemein);
final SharedPreferences sharedPreferences = this.getSharedPreferences("com.example.gruppen_app", Context.MODE_PRIVATE);
@SuppressLint("ResourceType") final CheckBoxPreference night_mode = (CheckBoxPreference) findPreference(this.getResources()
.getString(R.id.night_mode_btn));
night_mode.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if(night_mode.isChecked()) {
sharedPreferences.edit().putBoolean("isChecked", true).apply();
map.getOverlayManager().getTilesOverlay().setColorFilter(TilesOverlay.INVERT_COLORS);
}else{
sharedPreferences.edit().putBoolean("isChecked", false).apply();
}
return false;
}
});
}
}