일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 안드로이드 카카오 로그인
- 영어독립365
- 알고리즘 자바
- scope function
- OkHttp Interceptor
- Android Navigation
- Android 12 대응
- WebView
- 안드로이드
- 영어공부
- 66챌린지
- android recyclerview
- Kotlin
- MVP Architecture
- Android ViewPager2
- Kotlin FCM
- Android
- 카카오 알고리즘
- Android 12
- 안드로이드 fcm
- Java
- 안드로이드 갤러리 접근
- 프로그래머스 알고리즘
- Android ProgressBar
- Android DataBinding
- 습관만들기
- Android WebView
- DataBinding
- Android Jetpack
- Android Interceptor
Archives
- Today
- Total
Developer Geek
Android DB - SharedPreferences 예제(Kotlin) 본문
반응형
개요
Android App 개발 중 가벼운 DB가 필요한 경우 SharedPreferences 를 사용하기를 추천한다.
Android Developers 공식 문서에서 SharedPreferences 를 설명하기를...
SharedPreferences >> 저장하려는 키-값(key-value) 컬렉션이 비교적 작은 경우 SharedPreferences API 를 사용해야 합니다. SharedPreferences 객체는 키-값 쌍이 포함된 파일을 가리키며 키-값 쌍을 읽고 쓸 수 있는 간단한 메서드를 제공합니다. 각 SharedPreferences 파일은 프레임워크에서 관리하며 비공개이거나 공유일 수 있습니다.
예제로 SharedPreferences 를 이용하여 가상의 사용자의 정보를 저장하여 읽고 쓰기를 하도록 한다.
실행화면
Code - Example
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10dp"
android:text="Name: "
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/etName"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/etName" />
<EditText
android:id="@+id/etName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tvName"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias=".3" />
<TextView
android:id="@+id/tvMajor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10dp"
android:text="Major: "
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/etMajor"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/etMajor" />
<EditText
android:id="@+id/etMajor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:inputType="text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tvMajor"
app:layout_constraintTop_toBottomOf="@id/etName" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btnSave"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#3F51B5"
android:text="저장하기"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@id/etMajor"
app:layout_constraintStart_toStartOf="@id/etMajor"
app:layout_constraintTop_toBottomOf="@id/etMajor" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.kt
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.EditText
import androidx.appcompat.widget.AppCompatButton
import androidx.core.content.edit
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// "user" 이름을 갖는 SharedPreferences 생성(가져오기)
val sharedPreferences = getSharedPreferences("user", Context.MODE_PRIVATE)
// user-sharedPreferences 에서 "name" 키로 저장된 값을 name 변수에 저장(단, 저장된 값이 없다면 "DefaultName"을 반환)
var name = sharedPreferences.getString("name", "DefaultName")
// user-sharedPreferences 에서 "major" 키로 저장된 값을 name 변수에 저장(단, 저장된 값이 없다면 "DefaultMajor"을 반환)
var major = sharedPreferences.getString("major", "DefaultMajor")
val etName: EditText = findViewById(R.id.etName)
etName.setText(name)
val etMajor: EditText = findViewById(R.id.etMajor)
etMajor.setText(major)
val btnSave: AppCompatButton = findViewById(R.id.btnSave)
btnSave.setOnClickListener {
var etNameText = etName.text.toString()
var etMajorText = etMajor.text.toString()
// 입력된 값으로 name, major 값 저장
sharedPreferences.edit(){
putString("name", etNameText)
putString("major", etMajorText)
}
}
}
}
반응형
'안드로이드' 카테고리의 다른 글
Android Splash Screen 예제(Kotlin) (0) | 2021.12.02 |
---|---|
갤러리 접근: 프로필 이미지 변경 (0) | 2021.11.23 |
안드로이드 원형 버튼 만들기 (4) | 2021.11.08 |
Android 키보드 생성 시, Bottom Navigation Hide (0) | 2021.10.28 |
안드로이드 style.xml 사용 예제 (0) | 2021.10.19 |
Comments