2012-03-06 3 views
7

내 xml 디렉토리에 user_preferences.xml이 있습니다. PreferencesActivity는이 파일을 사용하여 사용자 환경 설정 활동을 만듭니다. 사용자가 여기에서 선택한 것은 무엇이든 계속 유지됩니다. 그러나 사용자가 선택한 값을 검색 할 수 없습니다. preferences.getString ("key", "DEFAULT")은 항상 "DEFAULT"를 반환하는 이유는 무엇입니까?

내가 사용

...
SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0);  
    String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT"); 

... mapTypeString는 항상 "DEFAULT".

내 SharedPreferences 객체를 인스턴스화 할 때 내 user_preferences.xml을 찾을 수없는 것 같습니다. 그러나 PreferencesActivity는 물론 그것을 찾습니다. 그래서 나는 무엇을 놓치고 있습니까?

감사합니다. 당신은 편집 뒤에 환경 설정을 커밋해야

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT"); 
+0

동일한 환경 설정 파일을 읽으 실 수 있습니까? – SERPRO

+0

내 PreferenceActivity의 onCreate()에서 나는 \t을 사용합니다. \t addPreferencesFromResource (R.xml.user_preferences); 그래서 SharedPreferences 객체를 만들 때 파일을 다르게 가리켜 야 할 필요가 있을까요? – Hap

+0

XML이 XML 디렉토리 안에 있기 때문에 @SERPRO에 문제가 있습니까? – Hap

답변

9
은 당신의 코드를 변경

.

SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("map_type_pref_key", "blah_blah"); 
editor.commit(); 
+2

그게 효과가있어, 고마워. 그러나 나는 아직도 약간 혼란 스럽다 ... 나는 같은 활동에 선호도를 저장하는 다른 XML을 사용한다. 왜 getDefaultSharedPreferences가 다른 settings.xml이 아닌 user_preferences.xml을 제공합니까? – Hap

0

:

+2

"그러나 사용자가 선택한 값을 검색 할 수 없습니다." 그는 변화 시키려고하지 않고 회복하고자합니다. –