SharedPreference
에서 getInt()
을 시도 할 때마다 내 응용 프로그램이 다운되지만 언제든지 환경 설정을지도로 반복 할 수 있습니다. 예를 들어, 아래의 별표 라인을 참조하십시오 (이 샘플 및 여러 활동을 통해 작업 환경 설정 화면에 의해 입증) 분명히값이 존재 함에도 불구하고 공유 환경 설정 값을 가져올 수 없습니다.
private void loadPref(){
myPrefs = PreferenceManager.getDefaultSharedPreferences(this);
int sf = DEFAULT_VALUE;
Map<String,?> keys = myPrefs.getAll();
for(Map.Entry<String,?> entry : keys.entrySet()){
if (entry.getKey().contentEquals("score_format"))
// this works: //*****
sf = Integer.parseInt(entry.getValue().toString()); //*****
}
// but this does not: //*****
// sf = myPrefs.getInt("score_format", DEFAULT_VALUE); //*****
setScoreFormat(sf);
}
를 내의 환경 설정이 저장되고있다. getDefaultSharedPreferences에 액세스하기 전에 super.onCreate()를 호출합니다.
이 코드가 작동하지 않는 이유를 이해하려면 어떻게해야합니까? 왜지도가 작동 하나 "getInt"메소드가 아닌가? 키 값을 명시 적으로 캐스팅하려고 시도하면 앱이 중단된다는 것을 알았습니다 ... 먼저 toString을 캐스팅해야했습니다.
무엇이 누락 되었습니까?
예외 logcat을 게시 할 수 있습니까? 'DEFAULT_VALUE'의 정의는 무엇입니까? – Szymon