2012-02-13 6 views
1

나는 CheckBox Preference 및 사용자 정의 대화 상자를 호출하는 Preference이있는 PreferenceScreen을 가지고 있습니다. 이 사용자 정의 대화 상자에서 사용자는 번호를 선택할 수 있습니다. 이 대화 상자에서 확인을 누르면 내 sharedPreferences을 편집하여 번호를 저장하려고합니다. 저장 후 자동으로 OnSharedPreferenceChanged 메소드를 호출해야합니다.OnSharedPreferenceChanged가 호출되도록 SharedPreferences를 편집하는 방법

CheckBox 환경 설정이 정상적으로 작동합니다.

+0

난 당신이 시도 궁금 http://stackoverflow.com/questions/ 3799038/onsharedpreferencechanged-not-fired-if-change-occurs-in-separate-activity – Siddharth

+0

여기에 나와 싶은 것을 이해하지 못했습니다 ... onchangelistener를 등록 및 등록 취소하고 있습니다. CheckBox 환경 설정과 함께 작동합니다. 대화 상자에서 번호를 선택하면 SharedPreferences에 번호를 저장하고 숫자를 저장하면 자동으로 OnSharedPreferenceChanged 메서드를 호출해야합니다. 이게 가능한지 나는 모른다. ... – tschakkkiiiii

답변

2

사용자 지정 대화 상자는 DialogPreference를 확장해야합니다. 기본 설정이 예에서와 같이 (XXX는 유형의 이름 인)) (전화 persistXXX을 수정 된 경우 :

@Override 
public void onDialogClosed(final boolean positiveResult) { 
    if(positiveResult && this.isPersistent()) { 
     final StringBuilder b = new StringBuilder(); 
     b.append(this.hour).append(':'); 
     if(this.minute < 10) 
      b.append('0'); 
     b.append(this.minute); 
     this.persistString(b.toString()); 
    } 
} 
+0

당신의 대답에 감사드립니다. 나는 다음날 그것을 시도하고보고 할 것이다. – tschakkkiiiii

관련 문제