Obecnie pracuję nad aplikacją z menu, a jedną z opcji menu jest "Ustawienia", w której użytkownik może zasadniczo zdecydować o wyłączeniu dźwięków i innych tego typu czynnościach. Obecnie mam dwa przełączniki w działaniu Ustawienia. Oto kod Java dla aktywności Ustawienia tej pory:Zmiana stanu przełącznika systemu Android
import android.support.v7.app.ActionBarActivity;
public class Options extends ActionBarActivity {
private Switch ding;
private Switch countdown;
public boolean isDingChecked;
public boolean isCountdownChecked;
public static final String PREFS = "examplePrefs";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_options);
ding = (Switch) findViewById(R.id.switch1);
ding.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SharedPreferences examplePrefs = getSharedPreferences(PREFS,0);
Editor editor = examplePrefs.edit();
editor.putBoolean("userMessage", isChecked);
editor.commit();
//System.out.println(examplePrefs.getBoolean("userMessage", isChecked));
isDingChecked = examplePrefs.getBoolean("userMessage", isChecked);
System.out.println(isDingChecked + " is ding checked");
ding.setChecked(isDingChecked);
}
});
countdown = (Switch) findViewById(R.id.switch2);
countdown.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// do something, the isChecked will be
// true if the switch is in the On position
isCountdownChecked = isChecked;
}
});
}
}
jestem w stanie używać wartości logicznych w moim innej działalności, więc SharedPreference działa dobrze. Jednakże, gdy wracam do mojej aktywności w menu i wracam do tego działania opcji, stan przełączników powraca do domyślnych wartości bycia prawdziwym, niezależnie od tego, co podaje użytkownik. Czy mimo to mogę to naprawić?
ding.setChecked(isDingChecked)
Naprawdę nic nie robię, jak sądzę. Wiem, że napisałem pytanie podobne do tego w przeszłości, po prostu nie miałem zbyt wiele aktywności i pracuję nad tym problemem od dłuższego czasu. Dzięki!
dziękuję !! – user2677095