Hello, Android!
안드로이드 shared preferences 본문
안드로이드 앱에서 데이터를 저장할때는 내부 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 |