2016-07-31 3 views
0

에서이 내 설정 활동을 가지고있다 하나 개의 스위치를 공유 선호도를 얻을 :다른 활동

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

이것을 달성하는 한 가지 방법은 MainActivity에서 선호도 값을 onResume()으로 읽는 것입니다. 언제 어디서나 MainActivity에 도착할 때마다 최신 값을 받아야합니다.

값을 읽으려면 쓰는 것과 비슷하게 값을 읽으십시오.

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

: 당신의 MainActivity에서 :

내가 사용하는 하나의 트릭 위에서 언급 한 바와 같이
+0

값을 어떻게 읽어야합니까? – cepapupov

0

은 onResume의 변화를 확인하는 것입니다 (사실 "settings_prefs는"앱의 로컬 저장소에서 XML 파일입니다)() 메소드

0

모든 활동에서 이와 같이 기본 설정 밸브를 읽을 수 있습니다.

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

된 SharedPreferences의 getSharedPreferences (문자열 이름, INT 모드)

검색하고, 검색하고 값을 수정할 수 있습니다이를 통해 된 SharedPreferences를 반환, 환경 설정 파일 '이름'의 내용을 누릅니다. SharedPreferences 객체의 하나의 인스턴스 만 동일한 이름으로 모든 호출자에게 반환됩니다. 즉, 서로의 편집 내용이 작성되는 즉시 보게됩니다.

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

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