2016-07-31 16 views
0

からこの私の設定の活動持っているされたスイッチを1つの共有プリファレンスを取得:別のアクティビティ

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(); 
    } 
} 
}); 

どのように私は、値に基づいて、いくつかの仕事をするための主な活動で、この共有プリファレンス値を取得できますか?

答えて

0

これを達成する方法の1つは、MainActivityの値をonResume()に読み込みます。これにより、どこからでもMainActivityにアクセスするたびに最新の値が取得されます。

値を読み取るには、書き込みと同様に行います。あなたのMainActivityで:

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

(実際:「settings_prefs」は、アプリのローカルストレージ内のXMLファイルである)

+0

どのように値を読み取る必要がありますか? – cepapupov

0

私が使用して1つのトリック上述したようにonResume()メソッド

の変化を確認することです
0

どのような活動でもこのように嗜好弁を読むことができます。

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

SharedPreferencesのgetSharedPreferences(文字列名、int型モード)

取得し、あなたが取得し、その値を変更することができ、それを通してSharedPreferencesを返し、環境設定ファイル「」の内容を保持します。 SharedPreferencesオブジェクトの1つのインスタンスだけが同じ名前の呼び出し元に返されます。つまり、作成されるとすぐにお互いの編集内容が表示されます。

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

boolean switchState= sharedPreference.getBoolean("switch1_state",false); 
関連する問題