0. 사용용도

 - 초기 설정값이나 자동로그인 여부, 진동 유무등 간단한 값을 저장하고 싶을때 사용

 - 어플리케이션 파일형태로 데이터를 저장

 - 어플리케이션이 삭제 전까지 보존

 - 간단하게 Key, Value 형태의 파일로 저장되므로 앱이 종료되어도 기억

 - 불러오려는 Key값이 없는 경우 공백문자열을 return.


1. 데이터 얻기

 - getPreferences(int mode)

하나의 액티비티에서만 사용하는 SharedPreferences를 생성

생성되는 SharedPreferences 파일은 해당 액티비티이름으로 생성

하나의 액티비티에서만 사용할 수 있지만 getSharedPreferences()를 사용하면 다른 액티비티에서도 사용가능


 - getSharedPreferences(String name, int mode)

특정 이름을 가진 SharedPreferences를 생성

주로 애플리케이션 전체에서 사용


2. 데이터 저장

먼저 데이터를 기록하기 위해 SharedPreferences.Editor 인스턴스를 얻어야 함

1
2
3
4
5
6
7
8
9
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
SharedPreferences.Editor editor = test.edit();
 
editor.putString("ID", Strid);
 
editor.putString("Password", Strpw);
 
editor.commit(); //완료한다.
cs


저장 가능한 데이터 타입

Boolean / String / Int / Float / Long



※ MODE  설정파일을 불러올때의 모드


- MODE_PRIVATE : 자기 app 내에서 사용할때, 기본값


- MODE_WORLD_READABLE : 다른 app에서 읽기 가능


- MODE_WORLD_WRITEABLE : 다른 app에서 쓰기 가능



3. 데이터 불러오기

데이터를 불러오기 위해서 getInt()나 getString() 메서드를 사용

getInt(KEY, VALUE)

첫번째 인자는 데이터의 키, 두번째 인자는 해당값이 없을경우 반환할 값을 넣어준다.

1
2
3
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
int firstData = test.getInt("ID", 0);
cs


4. 데이터 삭제

1) 특정 데이터 삭제

1
2
3
4
5
6
7
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
SharedPreferences.Editor editor = test.edit();
 
editor.remove("test");
 
editor.commit();
cs

2) 모든 데이터 삭제

1
2
3
4
5
6
7
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
SharedPreferences.Editor editor = test.edit();
 
editor.clear();
 
editor.commit();
cs

5. Context와 함께 사용


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 선언
public class PreferencesUtil{
 
    public static void setPreferences(Context context, String key, String value) {
        SharedPreferences pref = context.getSharedPreferences("pref", context.MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(key, value);
        editor.commit();
    }
 
    public static String getPreferences(Context context, String key) {
        SharedPreferences pref = context.getSharedPreferences("pref", context.MODE_PRIVATE);
        pref = context.getSharedPreferences("pref", context.MODE_PRIVATE);
        return pref.getString(key, "");
    }
}
 
 
//저장
PreferencesUtil.setPreferences(context, "ID", Strid);
PreferencesUtil.setPreferences(context, "PW", StrPw);
 
//불러오기
String ID= PreferencesUtil.getPreferences(context, "ID");
String Pw= PreferencesUtil.getPreferences(context, "Pw");
 
Log.d("PreferencesUtil""ID: " + ID);
Log.d("PreferencesUtil""Pw: " + Pw);
cs


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

ProgressDialog 와 Toast  (0) 2016.08.25
HttpURLConnection  (0) 2016.08.25
Context  (0) 2016.08.24
Activity 생명주기  (0) 2016.08.24
Fragment  (0) 2016.08.24

+ Recent posts