안드로이드/Android-Dev

Android # SharedPreferences

SharedPreference

app의 간단한 설정 정보들을 저장하기 위해서 안드로이드에서는 SharedPreferences class를 제공한다.
파일시스템 기반으로서 XML 형태로 저장이 되며, SQLite를 사용하기에 부담스러운 것들을 저장하기에는 유용하다.
저장되는 값은 name,value 구조의 쌍으로 저장한다.

설정 파일은 data/data/패키지 이름/shared_prefs/ 의 경로에 고정되어 저장된다.
일반적으로는 실행하는 앱에서만 사용가능하지만, 파일 모드를 변경하여 다른 앱에서도 사용은 가능하긴 하다.

1. 설정 값 저장하기

1
2
3
4
5
SharedPreferences prefs = getSharedPreferences( (Stirng)Preferences_name , MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putString( (Stirng)key , value ); // value : 저장될 값 
ed.putInt( (Stirng)key , value );
ed.commit(); // 필수! commit을 해줘야 저장이 된다.
cs

2. 설정 값 불러오기

1
2
3
SharedPreferences prefs = getSharedPreferences( (Stirng)Preferences_name ,MODE_PRIVATE);
prefs.getString( (Stirng)key,  default_value );
prefs.getInt( (Stirng)key,  default_value );
cs

getSharedPreferences( (Stirng)Preferences_name , (int)MODE );

  • MODE => 설정파일을 불러올때의 모드

    • MODE_PRIVATE : 자기 app 내에서 사용할때, 기본값이며, 0
    • MODE_WORLD_READABLE : 다른 app에서 읽기 가능
    • MODE_WORLD_WRITEABLE : 다른 app에서 쓰기 가능
  • Preferences_name => 설정 값들이 저장되는 파일의 이름. (다양한 설정 파일들이 존재할수 있기 때문에)

  • key => string 형이며, 값의 변수명 역할을 수행하는 이름.

  • default_value => key에 해당하는 저장값이 없을때, 불러올 기본값.
    위에서 보여준 String, int이외에도 Long,float 등 다양한 메서드를 지원한다.

Summary

WRITE

1
2
3
4
5
    SharedPreferences prefs = getSharedPreferences("CyLostPrefName", MODE_PRIVATE);
    Editor ed = prefs.edit();
    ed.putString("gmailID""snazzy7979");
    ed.putString("gmailPWD""pwd12345");
    ed.commit();
cs

REMOVE

1
2
3
4
5
6
SharedPreferences prefs = getSharedPreferences("androesPrefName", MODE_PRIVATE);            
Editor ed = prefs.edit();
ed.remove("gmailID");
ed.remove("gmailPWD");
// ed.clear();
ed.commit();
cs

READ

1
2
3
SharedPreferences prefs = getSharedPreferences("androesPrefName", MODE_PRIVATE);
String gmailID = prefs.getString("gmailID""");
String gmailPWD = prefs.getString("gmailPWD""");
cs

'안드로이드 > Android-Dev' 카테고리의 다른 글

Android # http 권한 허용하기  (0) 2020.02.07
Android # setContentView(+Inflater)  (0) 2020.02.04
Android # Notification  (0) 2019.12.16
Android # 진동과 소리 울리기  (2) 2019.12.16
Android # baseline(view)  (0) 2019.12.14