들어가며
지금까지 나의 비밀 정원 어플을 만들어 보았습니다 많은 것을 배웠습니다 배표적으로 getSharedPreferences 를 통해서 로컬 디비에 접근 쓰기 읽기가 가능하도록 구현을 해보았고 Runnable 객체와 Handler객체를 통해 수행 할 로직을 스레드로 실행시키면서 UI의 변경이 스무스 하게 변경 될 수 있도록 구현 해 보았습니다. 프론트에서는 이 전 어플인 로또 추첨기에서 다뤄봤던 Constraintlayout을 사용 했기 때문에 getSharedPreferences 와 쓰레드 구현에 대해에 잠깐 정리하는 시간을 가져보겠습니다. 간단합니다!
CODE
val diaryText: EditText = findViewById(R.id.diaryText)
val diaryPreference = getSharedPreferences("diary", Context.MODE_PRIVATE)
diaryText.setText(diaryPreference.getString("text",""))
어제도 다뤄봤죠? 어떻게 로컬디비에 파일을 만들고 접근 제어자를 설정하고 파일에 키 벨류 형태의 데이터를 추가하는 방법을 다뤄 봤습니다. 라인라인으로 설명 해 보겠습니다
1 라인: 다이러리 값을 VIEW하기 위해 findeViewById를 통해 layout에 선언 해놓은 diaryText를 불러옵니다
2 라인: getSharedPreferences를 통해 로컬 디비에 diary라는 폴더를 만듭니다 그때 Context.MODE_PRIVATE를 통해 접근을 누구나 할 수 없겠금 만들어 보안에 좀 더 신경을 쓸 수있도록 설정 하였습니다.
3 라인: diaryText에 text에 값을 입력 합니다! getSharedPreferences를 통해 diary폴더 내에 있는 text라는 키를 가진 값을 가져와 적용 합니다
이렇게 되면 서버 접근 없이 저장 된 값을 가져와 view할 수 있게 됩니다. 저기서 getString 의 두번째 인자는 default value라고 해서 값이 로컬 디비에 없을때 빈값을 보여주게 되는 것입니다.
private val handler = Handler(Looper.getMainLooper())
val runnable = Runnable {
diaryPreference.edit {
putString("text",diaryText.text.toString())
}
}
diaryText.addTextChangedListener {
handler.removeCallbacks(runnable)
handler.postDelayed(runnable, 500)
}
스래드를 생성해서 기능을 구현하는 방법은 너무 간단합니다
일단 구현하고자 하는 로직을 Runnable 에 작성합니다. 그 작성된 객체를 handler를 통해 스레드에 전달을 하기 위해 postDelayed 함수를 사용해서 딜레이를 0.5초를 주어서 addTextChangedListener를 통해 텍스트 값이 바뀔때 0.5초 뒤에 값이 생기지 않는다면 저장하겠다라는 의미 입니다.
이렇게 스레드 설정 까지 완료 해보는 시간을 가져봤습니다
내일은 보다 더 재미있는 강의가 너무나도 기대가 되네요 ㅎㅎ
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발#패스트캠퍼스후기#30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스 30일챌린지' 카테고리의 다른 글
[안드로이드] 패스트캠퍼스 챌린지 26일차!!(TableLayout) (0) | 2021.10.01 |
---|---|
[안드로이드] 패스트캠퍼스 챌린지 25일차!! (0) | 2021.09.30 |
[안드로이드] 패스트캠퍼스 챌린지 23일차!!(Runnable, Handler) (0) | 2021.09.28 |
[안드로이드] 패스트캠퍼스 챌린지 22일차!!(getSharedPreferences, AlertDialog) (0) | 2021.09.27 |
[안드로이드] 패스트캠퍼스 챌린지 21일차!! (0) | 2021.09.26 |
댓글