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 |