2011-04-13 6 views
3

나는 PreferemceActivity는 XML에서 팽창이PreferenceActivity를 새로 고침 문제

if("ShowContactPhotosCheckBoxPref_Appendix".equals(key)){ 
      SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); 
      boolean isChecked = prefs.getBoolean("ShowContactPhotosCheckBoxPref_Appendix", false); 
      Editor editor = PreferenceManager.getDefaultSharedPreferences(mContext).edit(); 
      editor.putBoolean("ShowContactPhotosCheckBoxPref", isChecked); 
      editor.commit();    
     } 

하지만 ShowContactPhotosCheckBoxPref로 여전히 화면에 갈 때 이전 기본 설정 값을 유지하십시오 ... 그래서 ShowContactPhotosCheckBoxPref_Appendix를 클릭하면 - 그의 상태가 선택 취소 된 다음 ShowContactPhotosCheckBoxPref로 화면으로 이동합니다 - 그의 상태는 계속 확인되지만 SharedPreferences의 값은 false입니다 ...

PreferenceActivity에 값을 새로 고치려면 어떻게해야합니까?

답변

1

솔루션 ApiDemos AdvancedPreferences.java에 있습니다

private CheckBoxPreference mCheckBoxPreference; 

mCheckBoxPreference = (CheckBoxPreference)getPreferenceScreen().findPreference(
     KEY_ADVANCED_CHECKBOX_PREFERENCE); 

if (mCheckBoxPreference != null) { 
    mCheckBoxPreference.setChecked(!mCheckBoxPreference.isChecked()); 
} 
0

코드에서 값을 변경하지 않습니다. 그것은해야한다 :

editor.putBoolean("ShowContactPhotosCheckBoxPref", !isChecked); 

을 주목 !

+0

가 아니, 내가 값을 변경합니다. ShowContactPhotosCheckBoxPref의 값은 ShowContactPhotosCheckBoxPref_Appendix의 값과 같아야합니다. – vsvydenko

+0

죄송합니다. 실수입니다. 나는 너의 포스트를 제대로 읽지 않았다. – rajath

+0

그래서 ShowContactPhotosCheckBoxPref_Appendix를 클릭하면 그의 상태가 체크 해제 된 다음 ShowContactPhotosCheckBoxPref로 화면으로 이동합니다 - 그의 상태는 여전히 체크되었지만 SharedPreferences의 값은 false입니다 ... – vsvydenko