Ich entwickle derzeit eine App, die ein Menü hat, und eine der Optionen im Menü ist "Einstellungen", wo der Benutzer im Grunde entscheiden kann, Sounds und andere Dinge wie diese auszuschalten. Ich habe derzeit zwei Schalter in der Aktivität Einstellungen. Hier ist der Java-Code für die Aktivität Einstellungen so weit:Ändern Android Switch-Status
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;
}
});
}
}
Ich bin in der Lage, die Boolesche Werte in meiner anderen Aktivität zu verwenden, so dass die SharedPreference gut funktioniert. Wenn ich jedoch zu meiner Menüaktivität zurückkehre und zu dieser Optionsaktivität zurückkehre, wird der Status der Schalter wieder auf die Standardwerte zurückgesetzt, unabhängig davon, was der Benutzer angibt. Kann ich das irgendwie beheben?
ding.setChecked(isDingChecked)
Ist nicht wirklich etwas, denke ich. Ich weiß, dass ich in der Vergangenheit eine ähnliche Frage gestellt habe, es ist nur, dass man nicht viel aktiv war und ich arbeite seit einiger Zeit an diesem Thema. Vielen Dank!
hab es dank !! – user2677095