1. 데이터 저장
1-1) 단순하게 데이터를 저장하려고 알아보다가 SharedPreferences로 저장하기로 한다.
공식문서를 보면
- 키-값이 비교적 적을 경우 SharedPreferences API를 사용할 수 있다고 한다.
나머지는 공식문서를 통해 보고
앞에 editer가 계속 쓰이기때문에 with를 사용한다.
1-2) bloodType
radioGroup과 spinner가 한번에 들어와야되서 따로 함수로 만들어 준다.
//EditActivity.kt
private fun getBloodType() {
val bloodAlphabet = binding.bloodTypeSpinner.selectedItem.toString()
val bloodSign = if(binding.bloodTypePlus.isChecked) "+" else "-"
}
//bloodAlphabet는 spinner에 선택된 아이템 가져오기
//bloodSign는 selectedItem으로 선택된 아이템보단 bloodTypePlus이 체크되있다면 + 아니면 -
결과코드
private fun saveData() {
with(getSharedPreferences("userInformation", Context.MODE_PRIVATE).edit()) {
putString("name", binding.nameEditText.text.toString())
putString("bloodType", getBloodType())
putString("emergencyContact", binding.emergencyContactEditText.text.toString())
putString("birthDate", binding.birthdateTextView.text.toString())
putString("hobby", getHobby())
putString("mbti", binding.MBTITypeSpinner.selectedItem.toString()) //mbtiTextView
apply()
}
Toast.makeText(this, "저장을 완료했습니다.", Toast.LENGTH_SHORT).show()
}
private fun getBloodType(): String {
val bloodAlphabet = binding.bloodTypeSpinner.selectedItem.toString()
val bloodSign = if(binding.bloodTypePlus.isChecked) "+" else "-"
return "$bloodSign$bloodAlphabet"
}
private fun getHobby(): String{
return if(binding.hobbyCheckBox.isChecked) binding.hobbyEditText.text.toString() else ""
}
1-3) saveButton
2. 상수 값을 모아놓는 Const.kt 생성
코틀린 클래스를 새로 생성후 작성
//Const.kt
package com.example.kotlin_infomation_save
const val USER_INFORMATION = "userInformation"
const val NAME = "name"
const val BIRTYDATE = "birthdate"
const val BLOOD_TYPE = "bloodType"
const val EMERGENCY_CONTACT = "emergencyContact"
const val HOBBY = "hobby"
const val MBTI = "mbti"
해당되는 것들 변경해주기
//MainActivity
private fun saveData() {
with(getSharedPreferences(USER_INFORMATION, Context.MODE_PRIVATE).edit()) {
putString(NAME, binding.nameEditText.text.toString())
putString(BLOOD_TYPE, getBloodType())
putString(EMERGENCY_CONTACT, binding.emergencyContactEditText.text.toString())
putString(BIRTYDATE, binding.birthdateTextView.text.toString())
putString(HOBBY, getHobby())
putString(MBTI, binding.MBTITypeSpinner.selectedItem.toString()) //mbtiTextView
apply()
}
Toast.makeText(this, "저장을 완료했습니다.", Toast.LENGTH_SHORT).show()
}
3. 데이터 저장할거 MainActivity로 옮겨주기
3-2) MainActivity 실행
4. 데이터 삭제
//MainActivity.kt
private fun deleteData() {
with(getSharedPreferences(USER_INFORMATION, MODE_PRIVATE).edit()) {
clear()
apply()
getDataUiUpdate()
}
Toast.makeText(this, "데이터를 삭제했습니다.", Toast.LENGTH_SHORT).show()
}
//MainActivity.kt -> onCreate
binding.deleteButton.setOnClickListener {
deleteData()
}
5. 전화기능
'Android Studio > base_Project' 카테고리의 다른 글
[기본] 갤럭시 스톱워치 클론코딩 (2/3 기능구현) (0) | 2024.02.07 |
---|---|
[기본] 갤럭시 스톱워치 클론코딩 (1/3 분석단계 및 UI ) (0) | 2024.02.06 |
[기본] 안드로이드 계산기 클론 코딩 (2/2) 완료X (1) | 2024.02.06 |
[기본] android 계산기 클론 코딩 (1/2) (0) | 2024.02.05 |
[기본] 개인 정보 등록 앱 구현하기 (1/2) (0) | 2024.01.29 |