2016-07-31 11 views
0

diese meine Einstellungen Aktivität ist, die einen Schalter bekommen hat:erhalten geteilt Präferenz von einer anderen Aktivität

settings_inputs_switch = (Switch) findViewById(R.id.settings_inputs_switch); 
settings_prefs = getSharedPreferences("settings_prefs", MODE_PRIVATE); 
settings_inputs_switch.setChecked(settings_prefs.getBoolean("switch1_state",true )); 
settings_inputs_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    if (settings_inputs_switch.isChecked()){ 
     settings_prefs = getSharedPreferences("settings_prefs", MODE_PRIVATE); 
     SharedPreferences.Editor editor = settings_prefs.edit(); 
     editor.putBoolean("switch1_state", true); 
     editor.commit(); 
    } 
    else { 
     settings_prefs = getSharedPreferences("settings_prefs", MODE_PRIVATE); 
     SharedPreferences.Editor editor = settings_prefs.edit(); 
     editor.putBoolean("switch1_state", false); 
     editor.commit(); 
    } 
} 
}); 

wie kann ich diese gemeinsame Präferenzwert in Haupttätigkeit bekommen einige Arbeit zu tun auf dem Wert basiert ??

Antwort

0

Eine Möglichkeit, dies zu erreichen, ist in Ihrem MainActivity lesen Sie den Wert der Präferenz in onResume(). Dies sollte Ihnen den neuesten Wert jedes Mal erhalten, wenn Sie von überall zu MainActivity kommen.

Um den Wert zu lesen, tun Sie es ähnlich wie Sie sie schreiben. In Ihrer MainActivity:

@Override 
protected void onResume() { 
    SharedPreferences prefs = getSharedPreferences("settings_prefs", Context.MODE_PRIVATE); 
    boolean switchState1 = prefs.getBoolean("switch1_state", false); 
    // Do more stuff 
} 

(Tatsache: "settings_prefs" ist eine XML-Datei in Ihrer App lokalen Speicher)

+0

Wie soll ich den Wert lesen? – cepapupov

0

wie oben einem Trick angegeben i verwenden ist für Änderungen in onResume() Methode zu überprüfen

0

Sie können Präferenzventil in jeder Aktivität so lesen.

SharedPreferences sharedPreference = getSharedPreferences("settings_prefs", Context.MODE_PRIVATE); 
boolean value = sharedPreference.getBoolean("switch1_state",false); 
0

SharedPreferences getSharedPreferences (String name, int mode)

Abrufen und den Inhalt der Voreinstellungsdatei 'Namen' halten, Rückgabe eines SharedPreferences, durch die Sie abrufen können, und ihre Werte ändern. Nur eine Instanz des SharedPreferences-Objekts wird an alle Aufrufer für denselben Namen zurückgegeben. Das bedeutet, dass sie die Änderungen des anderen sofort nach deren Ausführung sehen.

SharedPreferences sharedPreference = getSharedPreferences("settings_prefs",Context.MODE_PRIVATE); 

boolean switchState= sharedPreference.getBoolean("switch1_state",false);