개발을 하다보면 간단한 값을 저장하고 꺼내와야할 때가 있다.
간단한 저장을 하고 꺼내와야되는데 서버와의 통신을 통해 DB에서 꺼내오는 것은 조금 낭비라는 생각이 든다 .
그럴때 쓰는 것이 바로 Sharedpreferences다
먼저 Sharedpreferences란??
SharedPreferences는 안드로이드에서 Map과 같이 key-value 방식으로 간단하게 데이터를 저장하는 방식이다.
SharedPreferences의 장점은 구현이 쉬우면서 app이 재부팅되도 데이터가 유지된다는 점이다.
하지만 앱을 삭제할 시에 데이터들이 삭제가 된다는 점은 유의하자!
중요한것은 key -value 방식이라는 것이다 .
key-value 방식을 사용하는 이유? (개인적인 생각)
우리가 어떤 방(value)에 문을 열기위해서는 key가 필요하다 . 방이 여러개고 key도 여러개인데
만약 key가 똑같이 생겼다면??
어떤 key를 써서 방문을 열어야될지 난감할 것 이다. 방을 헷갈리지않고 잘 찾게하기위해 key-value
방식을 사용한다. 때문에 key 이름을 잘 설정하는것이 중요하다
내가 shared를 사용한 부분은 자동로그인 부분이다 .
구현방법은 많이 있지만 아주아주 간단하게 구현을 해보도록 하겠다.
순서는 sharedpreferences 객체를 선언하고 key를 설정해준다
그 다음 edit 객체를선언하고 (edit 객체는 추가, 수정, 삭제를 할 수 있다.)
edit객체를 설정했으면 shared 에다가 저장할 변수들을 넣어주면 된다.
마지막으로 apply()를 사용하여 적용을 해주면 끝이다. (apply 안해주면 저장안됨!)
저장을 할 변수들도 key-value 방식으로 저장을 해줘야된다.
먼저 함수를 만들어보자 이름은 saveData라고 하고 파라미터에 로그인 Email값을 넣어준다 .
(참고 = putString 뿐만 아니라 int, boolean 등 다양하게 저장할 수 있다! )
fun saveDate( loginEmail :String ){
val pref =getSharedPreferences("userEmail", MODE_PRIVATE) //shared key 설정
val edit = pref.edit() // 수정모드
edit.putString("email", loginEmail) // 값 넣기
edit.apply() // 적용하기
}
위의 함수를 만들어줬다면 로그인시에 로그인이 성공을 하였다면 저 메소드를 넣어준다.
//아이디와 비밀번호를 어느 editText에 입력을 했다치고 설명을 하겠다! ^^
loginButton.setOnClickListener {
val Email = et_email.text.toString()
///어쩌고 저쩌고 로그인 성공!
saveData(Email)
}
이렇게 해주면 자신의 로컬(Device)의 내부저장소에 email 아이디가 저장이 된것을 확인 할 수 있다.
확인방법 ! 안드로이드 스튜디오의 오른쪽에 devicefile explorer를 누르고
ㄴ data/data/어플리케이션 패키지 이름/shared_prefs/shared객체 key 값/ 파일을 찾아가면된다.
하면 이런식으로 저장이 된것을 확인할 수 있다. 마찬가지로 저장할 때 "email" 이란 key값으로 저장된것을 확인 할 수
있다.
<map>
<string name="email">hyun19@gmail.com</string>
</map>
다음시간에 shared로 저장한 것을 꺼내와서 자동 로그인하는것을 마저 설명하도록 하겠다!
'안드로이드' 카테고리의 다른 글
FCM 토큰 이용해서 상대방에게 메세지 날리기 (feat.Retrofit) 2편 (0) | 2021.11.10 |
---|---|
FCM 토큰 이용해서 상대방에게 메세지 날리기 (feat.Retrofit) 1편 (0) | 2021.11.09 |
Sharedpreferences 사용해서 자동로그인 기능 추가하기! 2편 (Kotlin) (0) | 2021.10.19 |
<Android Studio -JAVA> RecyclerView_item 클릭 (0) | 2021.07.19 |
<Android Studio -JAVA> RecyclerView 사용하기 (0) | 2021.07.19 |