2012-08-30 5 views
1

분명히 잘못되었습니다. 그것은, 나는 다음과 같은 코드가로 이동하는 활동을 결정 내 시작 화면,에 : 그래서시작시 SharedPreferences를로드하는 중 오류가 발생했습니다.

SharedPreferences getPrefs = PreferenceManager 
         .getDefaultSharedPreferences(getBaseContext()); 
       boolean disclamerChecked = getPrefs.getBoolean("disclamer", false); 
       boolean medicalScreeningChecked = getPrefs.getBoolean("screening", false); 

을, 나는 설정이 경우 응용 프로그램 설치 및 에 거짓이어야한다 2 부울을 읽으려고 그것은 영구적으로 이루어져야합니다. 내 활동에서 지금

(Disclamer는 순간에) 나는 다음과 같은 것이있다 :

private void setDisclamerPropertie() { 
    // TODO Auto-generated method stub 
    startupPrefs= getSharedPreferences("startupPrefs", MODE_WORLD_WRITEABLE); 
    SharedPreferences.Editor editor = startupPrefs.edit(); 
    editor.putBoolean("disclamer", true); 
    editor.commit(); 
    return; 
} 

이 기능은 함수를 만듭니다에 호출, 때 "동의"됩니다 버튼을 클릭에게가 저장해야 공유 환경 설정 (또는 최소한 그것이 내가 필요한 일입니다).

버튼이 작동하고 다음 활동으로 넘어가고 다음으로 넘어가지만 앱을 다시로드하면 부울이 저장되지 않고 앱에서 확인을 다시 요청하는 것 같습니다.

그래서, 나는 환경 설정을 쓸 때 잘못되었거나 올바른 환경 설정을 읽는 데있어서 어떤 것이 누락 되었습니까?

답변

2

당신은 기본 공유 환경 설정에서 읽기,하지만 명명 된 하나 ("startupPrefs")에 쓰기 때문에 공유 환경 설정

을 2 개 별도의 인스턴스가된다
+0

Ouch ... 사실,로드를 "sturtupPrefs"에서 읽도록 변경했습니다. 이제는 정상입니다. Tnx! – Balkyto

2

다른 환경 설정을 사용 중입니다.

startupPrefs= getSharedPreferences("startupPrefs", MODE_WORLD_WRITEABLE); 

이 또한 있어야한다 :

startupPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
관련 문제