_/Velog

[Android Studio / Kotlin] Shared Preferences 앱 내부에 데이터베이스 만들기 (feat. 생명주기)

선달 2021. 5. 2. 04:58
반응형

www.youtube.com/watch?v=cyqgR8VTC1Y

 

 

준비물 : 함수 네개

 

더보기

예? 데이터 저장하는데 함수가 네개나요?

황당하고 신기한 앱개발의 세계...

나름 이틀 밤동안 강의 들으면서 열심히 만든 앱 어무니께 보여드렸는데 엥? 반응이였음.. 너무 필터없는 엥? 반응..ㅠ

 

맞다 빠질 수 없는 홍드로이드님 강좌찬사

아니 찬사할 내용이 계속 생김...

무작정 그냥 함수 쓰고 그런게 아니라 ㄹㅇ 실전에서 쓸 수 있게 시간 아낄 수 있는 방법으로 섬세하게 알려주심,, 진짜 현직 개발자의 클라스..

 

암튼 하루에 너무 배운게 많다보니 잡담도 길어지는듯

 

1. saveData() 사용

 override fun onDestroy() {  //앱이 종료되는 시점이 다가올 때 호출
        super.onDestroy()

        saveData()  //값을 저장하는 함수
    }

 

2. loadData() 사용

 override fun onCreate(savedInstanceState: Bundle?) {    //앱이 최초 실행되었을때 실행.
        super.onCreate(savedInstanceState)
        setContentView(R.layout.엑티비티이름)  // "엑티비티"에 화면 뷰를 연결.

        loadData()  //저장되어있던 값을 setText

   }

 

낯선 오버라이드 함수.. 라서 익숙한 오버라이드함수와 비교

본격 onDestroy() vs onCreate()

onDestroy() : 앱이 종료되는 시점에서 호출되는 함수
onCreate() : 앱이 시작되는 시점에서 호출

 

그리고 1번과 2번을 입력하면 당연하게도 오류가 난다. 없는 함수를 사용하려 했으니까..

그래서 해당 함수를 만들어준다. 근데 그 오류난곳에 alt(option)+enter 하면 자동으로 함수를 만들어준다.

신세계....!!!

 

3. saveData() 만들기

 private fun saveData() {
        val pref = getSharedPreferences("pref", 0)
        // 이 앱에 "pref" 이름으로 0번 옵션으로 저장 (보통 0으로 한다)
        
        val edit = pref.edit()  // 수정모드
        
        edit.putString("name", 텍스트뷰이름.text.toString())
        //첫번쨰 인자에는 키 값, 두번째 인자에는 실제 담아둘 값
        // "텍스트뷰"의 텍스트를 문자열로 edit에 넣고 "name"키로 잠근다
        
        edit.apply() //저장완료
    }

 

4. loadData() 만들기

private fun loadData() {

        val pref = getSharedPreferences("pref", 0)
        텍스트뷰이름.setText(pref.getString("키","")
        //첫번째 인자에는 저장시 키값, 두번째 인자에는 키 값에 데이터가 없을때의 대체값
        // "텍스트뷰"를 "키" 로 열어서 "pref" 에 저장된 값으로 설정한다. 만약 저장한값 없으면 ""

    }
반응형