2010-12-13 4 views
1

xml 파일의 PreferenceScreen을로드하여 새 이벤트를 구성하는 화면으로 사용하여이 활동에서 사용중인 SharedPreference의 값을 지우고 재설정하려고합니다. 내가 겪고있는 문제는 명명 된 환경 설정 관리자를 사용하려고 할 때 환경 설정이 지워진 것처럼 보이지만 EditTextPreference 요소를 선택하면 이전 데이터는 여전히 기본 입력 텍스트입니다.PreferenceScreen 사용시 기본 설정 다시 설정

내 onCreate 메서드에서 환경 설정을 초기화하고 초기화 한 다음 기본값으로 설정하려고합니다. dev에 자원에서 나의 이해는

private static final String PREFNAME = "newmeetingactivity.preferences"; 

//load preferences and set name 
addPreferencesFromResource(R.layout.newmeeting_preferences); 
getPreferenceManager().setSharedPreferencesName(PREFNAME); 
getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE); 

//Clear the preferences 
_sharedPreferences = getPreferenceManager().getSharedPreferences(); 
SharedPreferences.Editor ed = _sharedPreferences.edit(); 
ed.clear(); 
ed.commit(); 

//Load default preferences from file again 
PreferenceManager.setDefaultValues(this, _sharedPreferences.toString() , MODE_PRIVATE, R.layout.newmeeting_preferences, true); 

편집 .. 한 번에/리셋을 취소 할 수있는 방법이 없다고했다 : 더 나은 내가 할 시도하고있는 무슨 설명하려고하기 위해 (경우에 나의 접근 방식은 방식 꺼짐) : 주어진 활동에 사용 된 공유 환경 설정을 지우고 다른 활동의 설정을 방해하지 않아야합니다 (무기한으로 유지해야 함).

답변

-1

대신에 PreferenceManager.getDefaultSharedPreferences(context)을 사용하여 환경 설정을 사용해보십시오.

편집 : 당신이 값을 다시 선택 후 응용 프로그램에

ADB 쉘. 기본 설정 파일을 보면 기본값이 설정되었음을 알 수 있습니다. 활동을 새로 고침 해보십시오. 이 작업을 수행하는 한 가지 방법은 응용 프로그램 메뉴에서 응용 프로그램을 단순히 종료하는 것입니다. 활동이 다시 시작되면 예상 된 기본값을 갖게됩니다.

+0

다른 공유 기본 설정 (사용자 설정과 같이 영구적 인 설정 임)도 삭제됩니다. – Tyler

+0

게토 솔루션이 될 수도 있지만, 사용자는 자신 만의 종류를 명확하게 구현하여 모든 값을 기본값으로 재설정 할 수 있습니다. 이것은 정말 빠르며 더러운 해결책이지만, 나중에 코드를 작성하는 방법을 알면 올바른 코드로 대체 할 수 있습니다. – csaunders