GDSC HUFS 3기/Android with Kotlin Team 6

[6팀]코틀린 안드로이드 기초강의 40 SharedPreferences

신형철 2021. 11. 26. 03:04

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

작성자 : 신형철

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

 

 

1. SharedPreferences

SharedPreferences는 적은 양의 데이터를 저장할 때 사용하는 기능

어플이 종료되더라도 데이터가 저장이 되어있지만 어플이 삭제 될 경우 데이터도 함께 삭제된다.

 

해당 과정에서는 SharedPreferences기능을 사용해 두번째 접속시부터 이미지가 나타나지 않게 설정을 해주었다.

 

ImageView를 이용해 이미지를 불러와준다.

이때 이미지는 res - drawable에 붙여넣기 해주어 저장해준다.

xml 예시

여느때와 같이 바인딩 작업을 진행을 해주고나서 shared 변수를 생성해주었다.

이름은 예시이기에 filname으로 지정해주었다.

val shared = getSharedPreferences("filename", Context.MODE_PRIVATE)

처음 열었을 때는 값이 아무것도 없으므로 false가 저장된다.

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

first가 true이면 gdsc그림이 보이지 않게 될 것이다. 

if(first){
            binding.gdsc.visibility = View.GONE
        }

에디터를 생성해주고, false였던 값을 true로 바꾸어준다.

해당 작업을 통해서 다음에 열었을 때는 first가 true로 나와 그림이 보이지 않을 것이다.

val editor = shared.edit()
editor.putBoolean("key_first_open", true)
editor.commit()

에뮬레이터 실행화면

전체 메인 코드

class MainActivity : AppCompatActivity() {
    val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setContentView(binding.root)

        val shared = getSharedPreferences("filename", Context.MODE_PRIVATE)
        val first = shared.getBoolean("key_first_open",false)
        if(first){
            binding.gdsc.visibility = View.GONE
        }
        val editor = shared.edit()
        editor.putBoolean("key_first_open", true)
        editor.commit()
    }
}