GDSC HUFS 3기/Android with Kotlin Team 3

[3팀] 16-2 Shared preference로 상태 값 지정하기

darly213 2021. 11. 30. 00:07

이 글은 이것이 안드로이드다 with 코틀린(개정판)를 참고하여 작성하였습니다.

작성자 : 강다인

개발환경은 Windows, Android Studio입니다.

 

Shared preference는 파일보다는 비교적 적은 데이터 혹은 설정값을 저장할 때 사용합니다. 

Shared Prefernence를 사용하기 위해서 xml 탭에서 ImageVies와 textView 위젯을 사용하여 다음과 같이 화면을 구성합니다.

Shared preference를 사용하기 위해서는 우선 Shared preference를 가져와야 합니다.

가져오는 방법은 getSharedPreferences 메서드를 사용합니다.

val shared = getSharedPreferences("파일명", MODE_PRIVATE)

다음으로 first_open에 “key first open”을 key로 가지고 default 값을 false로 가지는 val을 지정해준다. (default 값이 false이기 때문에 앱을 처음 실행시 false값을 가진다.)

val first_open = shared.getBoolean("key_first_open", false)

if함수를 이용해서 first_open값이 ture인 경우에 이미지(id:Hello)가 사라지게 코드를 작성한다.

앱이 처음 실행된 경우 first_open의 값이 false이므로 이미지 사라지지 않고 그대로 있는다.

if(first_open){    
	binding.Hello.visibility = View.GONE
}

다음 수정을 위해서 editor를 꺼내고 앱이 실행된 경우 first_open의 값을 false에서 ture로 바꿔준다. 이 때 shared를 사용하는데 Shared에 값을 저장할 때는 edit라는 매서드를 사용한다.

val editor = shared.edit() //수정을 위한 에디터를 꺼낸다
editor.putBoolean("key_first_open", true)
editor.commit()

이렇게 되면 앱이 한 번이라도 실행되고 나면 first_open의 값이 true가 되어서 이미지(id:Hello)가 사라진다.

이제 에뮬레이터를 앱을 처음 실행하면 의도한대로 이미지(id:Hello)가 있는 것을 확인할 수 있다.

앱을 종료하고 다시 실행하면 아래와 같이 이미지(id:Hello)가 없는 것을 확인할 수 있다. 

DeviceFileExplorer를 통해서 앱 데이터 xml에 firs_open값이 true임 또한 확인할 수 있다.