안드로이드 개발 질문/답변
(글 수 45,052)
SharedPreferences를 사용해서 데이터를 저장할때는 key값만을 저장하던데요
저장한 데이터를 가져올때 아래와같이 "score"와 0은 무엇을 의미하는 건지 잘 모르겠습니다.
SharedPreferences pref;
저장한 데이터를 가져올때 아래와같이 "score"와 0은 무엇을 의미하는 건지 잘 모르겠습니다.
SharedPreferences pref;
pref = context.getSharedPreferences("score", 0);
high_Score = pref .getInt("key_Score", 0);
2011.01.20 21:35:56
getInt의 0은 값이 없을 때 기본적으로 가저오는 것이었던걸로 기억합니다.
getSharedPreferences의 0은 잘 기억이 안나구요, "score"는 단순히 저장된 SharedPreference 객체의 이름이구요. (단말기 내부에 다른 여러 SharedPref.들이 존재할 수 있기 때문에 이름을 필요로 하는 듯 합니다 ㅎㅎ;;)
"key_Score"도 비슷한걸겁니다. SharedPreference에서 필드의 이름일거에요.
2011.01.21 09:05:58
정확히 모르겠어서 더 찾아보다보니
score.xml 이라는 파일을 참조하는것 이라는데요..
그런데 생각해보니깐 값을 저장할때는 score라는걸 사용한 적이없습니다.
SharedPreferences.Editor ed = pref.edit();
ed.putInt("key_Score"+i, rank_Score);
그냥 키값과 저장할 값만 넣어줬는데 그렇다면 score.xml 파일은 어떻게 생겨난 것인지 궁금합니다..
2011.01.21 10:33:54
/res/xml/score.xml 에서 예를들면
ListPreference를 xml내에 만드시면 저희가 보통 xml에서 id값을 주듯이
key값을 줄수 있습니다.
글에서 쓰신 score라는 게 이런 key값이구요.
pref.getInt("score", 0) 요기서 앞에 score는 키값, 뒤에 0은 만약 key에 대한
value값이 없을때 적용되는 default값입니다.
2011.01.21 11:45:02
음 제가 잘못봣군요.
getSharedPreferences이거는 함수 설명에 말하시는 0은 mode라고 되있던데
저도 이함수는 안써봐서 잘모르겟군요.
설명 내용에는 MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE
요거 3개중에 적용하는거같군요.
그리고 xml은 위에 제가말한 경로에 xml추가해주고 쓰는건데
그곳에 설정을 표시할 것을 추가해주시는 겁니다.
Preference 값을 가져올때 저는
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
요렇게 하고 pref.getString썻는데...
혹시 PreferenceActivity 상속 받은 java파일은 있으신지요?