2013-05-04 2 views
1

서비스를 시작할 때 특정 설정 (부울)을 확인해야합니다.XML에서 기본값 가져 오기 (작동하지 않음)

XML 코드 :

<CheckBoxPreference android:title="Enable Sleep" android:defaultValue="false" android:key="checkbox_preference"/> 

자바 코드 :

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    boolean sleepEnabled = prefs.getBoolean("checkbox_preference", true); 

경우 (sleepEnabled) {

// 코드

}

다음 코드를 확인하시기 바랍니다 이자형 사실, XML의 기본값은 "false"입니다. 모든 서비스가 시작될 때마다 "true"가됩니다. "getBoolean()"메서드의 매개 변수를 "true"로 설정했기 때문에이 사실을 알았지 만 확인란의 실제 값이 필요합니다.

왜 서비스를 시작할 때 항상 "true"가됩니까?

p.s 설정으로 이동하여 확인란의 값을 변경하면 문제가 없습니다. 그런 다음 서비스를 다시 시작하면 실제 값을 가져옵니다. 그렇다면 XML에 실제 DEFAULT 값을 설정하는 방법은 무엇입니까?

+0

당신이 getBoolean에 false를 전달 때 발생 :

boolean sleepEnabled = prefs.getBoolean("checkbox_preference", false); 

하고 문서를 살펴? –

+0

나는 거짓을 얻는다. 하지만 XML 코드 때문에 "자연스러운"false가 XML에서 나오지는 않습니다. 내가 무슨 뜻인지 아는 경우 .. –

+0

및 응용 프로그램에서 확인란을 선택하면 true를 반환합니까? –

답변