Hello, Android!

안드로이드 shared preferences 본문

Android

안드로이드 shared preferences

lwndnjs93 2020. 5. 17. 15:29

안드로이드 앱에서 데이터를 저장할때는 내부 DB인 SQLite를 사용하거나 외부 DB를 사용한다

DB를 사용하기에는 간단한 문자열 등의 데이터를 저장할때는 shared preferences를 사용한다

이는 파일에 데이터를 저장하게 되며, 파일은 앱 폴더 내에 저장하기때문에

앱 삭제시 데이터도 삭제가 된다

 

예제는 두개의 액티비티가 존재하여 메인액티비티 에서는 id와 pw를 입력받고 버튼 클릭시 

shared preferences에 데이터를 저장한뒤 메인2액티비티로 액티비티를 전환한다

메인2액티비티에서는 shared preferences에 저장한 id와 pw를 읽어 텍스트뷰에 출력을 한다

getSharedPreferences()함수를 이용하여 SharedPreferences를 설정한다

getSharedPreferences()함수는 두개의 함수를 인자로 받는다

첫번째 인자는 저장할 파일명

두번째 인자는 파일의 접근 권한이다

MODE_PRIVATE 는 해당 앱에서만 사용이 가능하다

 

SharedPreferences의 에디터를 이용하여 데이터를 작성한다

putString함수는 문자열 데이터를 입력할때 사용하게 되며 두개의 인자를 받는다

첫번째 인자는 해당 데이터의 키 

두번째 인자는 저장할 데이터

 

그리고 마지막으로 commit 함수를 이용하여 데이터를 저장한다

 

Main2Activity에서는 전 액티비티에서 userInfo 라는 이름으로 저장한 데이터를 읽어오기위해

SharedPreferences 정보를 설정한다

데이터를 읽어올때는 get 함수를 사용한다

전 액티비티에서 id와 pw를 String으로 저장하였기 때문에 getString 함수로 값을 읽어왔다

getString함수는 두개의 인자를 받았다

첫번째 인자는 검색할 데이터의 키 

두번째 인자는 검색결과 데이터가 없을때 반환할 디폴트값을 지정한다

 

SharedPreferences 접근 상수

MODE_APPEND Preferences의 신규 추가
MODE_MULTI_PROCESS 현재 사용여부 체크
MODE_PRIVATE 해당 앱에서만 사용 가능
MODE_WORLD_READABLE 다른 앱에서 읽기 가능
MODE_WORLD_WRITEABLE 다른 앱에서 쓰기 가능

SharedPreferences 의 함수

contains(key: String) 키값이 있는지 체크
edit() editor 생성
getAll() 저장된 모든 데이터 검색
getBoolean(key: String, defV: Boolean) 해당 키의 boolean값 검색
getFloat(key: String, defv: Float) 해당 키의 float값 검색
getInt(key: String, defv: Int) 해당 키의 int값 검색
getLong(key: String, defv: Long) 해당 키의 long값 검색
getString(key: String, defv: String) 해당 키의 string값 검색

Editor 함수

apply() 비동기적으로 데이터를 저장한다
clear() 모든 데이터 삭제
commit() 동기적으로 데이터를 저장한다
putBoolean() boolean타입 데이터를 저장한다
putFloat() Float타입 데이터를 저장한다
putInt() Int타입 데이터를 저장한다
putLong() Long타입 데이터를 저장한다
putString() String타입 데이터를 저장한다
remove() 해당 key의 데이터를 저장한다

 

'Android' 카테고리의 다른 글

안드로이드 권한 요청  (0) 2020.05.24
Retrofit2를 이용한 HTTP통신  (0) 2020.05.23
05. 인텐트, 뷰 in kotlin  (0) 2019.03.11
04. 뷰  (0) 2019.03.10
03. 인텐트 Intent  (0) 2019.03.07