저장하기

SharedPreferences pref = getSharedPreferences("name", Activity.MODE_PRIVATE);

SharedPreferences.Editor editor = pref.edit();

editor.putString("key", "value");

editor.commit();



불러오기

SharedPreferences pref = getSharedPreferences("name", Activity.MODE_PRIVATE); 

 String value = pref.getString("key", "");





SharedPreferences는 데이터베이스처럼 복잡한 자료가 아닌 액티비티나 애플리케이션 등에서 사용하는 간단한 설정 값 등을 저장할 때 사용합니다. SharedPreferences를 이용하여 저장할 수 있는 데이터의 유형은 다음과 같습니다.

- Boolean
- Integer
- Float
- Long
- String

 SharedPreferences는 XML 형태로 저장되며, 각 데이터는 키-값의 쌍을 이루어 (Key-value Pair) 저장됩니다. 데이터베이스에서 ContentValues를 사용할 때 각 필드에 해당하는 값을 넣어준 것과 똑같은 방식입니다. SharedPreferences 파일은 단말기 내의 data/data/[패키지 이름]/shared_prefs 폴더에 저장됩니다.


SharedPreferences 인스턴스 얻기

 SharedPreferences를 통해 데이터를 저장하기 위해, 우선 SharedPreferences의 인스턴스를 얻어야 합니다. SharedPreferences 인스턴스를 얻는 방법은 세 가지로 나뉩니다.

- getPreferences(int mode) : 하나의 액티비티에서만 사용하는 SharedPreferences를 생성합니다. 생성되는 SharedPreferences 파일은 해당 액티비티의 이름으로 생성됩니다. 하나의 액티비티에서 사용할 목적으로 생성하였지만, 생성한 SharedPreferences의 이름을 getSharedPreferences() 메서드에 대입하면 다른 액티비티에서도 저장된 데이터에 접근할 수 있습니다.

- getSharedPreferences(String name, int mode) : 특정 이름을 가지는 SharedPreferences를 생성합니다. 주로 애플리케이션 전체에서 설정값 등을 저장하거나 불러와야 할 때 사용합니다.

- PerferenceManager.getDefaultSharedPreferences(Context context) : 환경 설정 액티비티에서 설정한 값이 저장된 SharedPreferences의 데이터에 접근할 때 사용합니다.


SharedPreferences를 통해 데이터 기록하기

 SharedPreferences에 데이터를 기록하려면 SharedPreferences.Editor 인스턴스를 받아야 합니다. Editor 인스턴스를 받은 후에는 저장하고 싶은 데이터의 형태에 따라 putInt(KEY, VALUE), putFloat(KEY, VALUE), putString(KEY, VALUE) 등의 메서드를 사용하여 데이터를 저장합니다. 데이터 기록을 마친 후에는 commit() 메서드를 호출해야만 변경 사항이 저장됩니다.


SharedPreferences를 통해 데이터 불러오기

 SharedPreferences 인스턴스의 getInt(), getString() ㅔ서드를 사용하여 데이터를 불러옵니다. 데이터를 불러오는 메서드에는 총 두 개의 인자를 넣어주며, 첫 번째에는 불러올 데이터의 키(Key) 값, 두 번째에는 해당 키에 해당하는 값이 없을 경우 반환할 값을 넣어줍니다.



SharedPreferences 예제





출처 - 기초부터 다지는 커니의 안드로이드


출처 - http://j07051.tistory.com/entry/SharedPreferences




'Android > Common' 카테고리의 다른 글

android - app 버전 관리  (0) 2012.10.07
service - Service API 변경  (0) 2012.09.28
android - 이클립스 환경 설정  (0) 2012.09.21
android - 하이브리드 앱(웹)  (1) 2012.09.19
android - 2012년 구글 I/O rewind  (0) 2012.09.11
Posted by linuxism
,