[SharedPreference]
Android/Class 2014. 7. 24. 18:00 |SharedPreferences는 크게 두 가지 방법으로 불러올 수 있다.
먼저, 사용자가 PreferenceActivity을 구현한 경우, 이는 기본설정값으로 다음과 같이 불러온다.
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
context에는 보통 this를 쓰며, Activity를 상속받지 않은 클래스에서는 개별 방법으로 context를 넘긴다.
이는 기본적으로 패키지명으로 xml파일이 작성된다. 이 경우 앱의 기본설정값을 저장하기 때문에 위에 나열한 상황에서 사용하기엔 적절치 않다.
해서, 따로 설정값을 저장하여 사용하는 방법을 살펴보자.
SharedPreferences cache= getSharedPreferences("cache", Activity.MODE_PRIVATE);
위 방법은 cache라는 설정값을 불러오며, 없을 시 자동 생성된다.
getSharedPreferences의 첫 번째 인자값이 xml 파일의 파일명이 되는 것이다.
MODE는 파일생성모드로,
MODE_APPEND 는 파일이 존재할 때 마지막부분에 계속 붙여서 작성하는 방식이고,
MODE_PRIVATE 는 위 메서드의 기본값으로, 호출한 앱에서만 파일 사용이 가능하다.
MODE_WORLD_READABLE 는 모든 앱에서 이 파일을 읽을 수 있는 것이고,
MODE_WORLD_WRITEABLE 는 모든 앱에서 이 파일을 수정할 수 있는 것이다.
MODE_MULTI_PROCESS 라는 모드도 있는데 이는 다른 프로세스에서 사용중인지 체크한 후 사용
getSharedPreferences는 Context 메서드이기 때문에,
Activity를 상속받은 클래스에서는 바로 사용 가능하지만 그렇지 않을 때는
context 객체를 전달받은 후 context.getSharedPreferences()로 사용하면 되겠다.
SharedPreferences 객체에 쓰고 읽는 것은 간단하다.
쓰는법부터 살펴보자면,
SharedPreferences cache = getSharedPreferences("cache", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = cache.edit();
editor.putString("ment", editText.getText().toString());
editor.commit();
위와 같은 방식으로 자료를 저장할 수 있다.
commit()은 편집을 끝내고 저장하는 메서드기 때문에 반드시 호출해야 한다.
값을 가져오는 것은 더욱 간단하다.
SharedPreferences cache = getSharedPreferences("cache", Activity.MODE_PRIVATE);
editText.setText(cache.getString("ment", null));
getString에서 두 번째 인수는 ment라는 key가 없을 때 넣어줄 기본값이다.
'Android > Class' 카테고리의 다른 글
[Exception] Exception의 종류 (0) | 2014.08.28 |
---|---|
[InputMethodManager] Keyboard 컨트롤 (0) | 2014.07.24 |
[ViewTreeObserver] View 변화에 대한 Listener 관리 (0) | 2014.07.24 |
[ImageView] android:scaleType 속성값 정리 (0) | 2014.07.24 |
[Fragment] Fragment 데이터 송수신 (2) | 2014.07.24 |