[アンドロイド]Sharedpreference実戦
89 Sharedpreferenceのデフォルト値
~メインレイアウトにボタンを1つ作ってスタート~
package com.example.kotlin_study.Android
import android.content.SharedPreferences
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.example.kotlin_study.R
import kotlinx.android.synthetic.main.activity_shared_preference.*
class SharedPreference : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_shared_preference)
//SharedPreference를 불러와보자
val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
//Mode
//MODE_PRIVATE:생성한 어플리케이션에서만 사용가능
//(원래 모드 많은데 API17이후부터 보안상의 이후로 PRIVATE만 제공)
//지금 내가 만든 sharedPreference에 데이터를 넣기 위해 editor 얻어오기
val editor: SharedPreferences.Editor = sharedPreference.edit()
editor.putString("hello", "안녕하세요") //key-value값으로 저장
editor.apply() //apply까지 해야 데이터 완전히 들어감
//sp1->SharedPreferences
// (Key,Value)로 ("hello", "안녕하세요") 가짐
//sp2->SharedPreferences
// (Key,Value)로 ("hello", "안녕하세요") 가짐
//sp1, sp2는 독립적인 저장공간이기때문에 서로 영향 주지 않음!!
//앱이 실행될때 위에서 sharedPreference의 sp1에 안녕하세요 저장시켰으니까 버튼 클릭시 데이터 꺼내와보자
button.setOnClickListener {
val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
val value = sharedPreference.getString("hello", "데이터 없음")
//key가 hello로 저장된 value값을 꺼내고 없으면 "데이터 없음"이 디폴트 값으로 출력
Log.d("key-value", "value:" + value)
}
}
}
sharedPreference.getString("hello2", "데이터 없음")
の場合、hello 11の値にはデータがないため、「データなし」はログデータの保存、ロード、削除、および一部の削除
~メインレイアウトに4つのボタンを貼る~
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".Android.SharedPreference"
android:orientation="vertical">
<Button
android:id="@+id/save_btn"
android:text="저장"
android:layout_width="100dp"
android:layout_height="100dp"/>
<Button
android:id="@+id/load_btn"
android:text="불러오기"
android:layout_width="100dp"
android:layout_height="100dp"/>
<Button
android:id="@+id/delete_btn"
android:text="부분지우기"
android:layout_width="100dp"
android:layout_height="100dp"/>
<Button
android:id="@+id/delete_all_btn"
android:text="전체지우기"
android:layout_width="100dp"
android:layout_height="100dp"/>
</LinearLayout>
~メインバラエティ番組~package com.example.kotlin_study.Android
import android.content.SharedPreferences
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.example.kotlin_study.R
import kotlinx.android.synthetic.main.activity_shared_preference.*
class SharedPreference : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_shared_preference)
//저장 버튼 클릭시 sharedPreference의 sp1에 데이터 저장
save_btn.setOnClickListener {
val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
val editor: SharedPreferences.Editor = sharedPreference.edit()
editor.putString("hello", "안녕하세요") //key-value값으로 저장
editor.putString("goodbye", "안녕히가세요") //key-value값으로 저장
editor.apply() //apply까지 해야 데이터 완전히 들어감
}
//불러오기 버튼 클릭시 sp1에 저장된 데이터 값들 로그에 찍힘
load_btn.setOnClickListener {
val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
val value1 = sharedPreference.getString("hello", "데이터 없음1")
val value2 = sharedPreference.getString("goodbye", "데이터 없음2")
Log.d("key-value", "value1:" + value1)
Log.d("key-value", "value2:" + value2)
}
//부분지우기 버튼 클릭시 sp1에 저장된 데이터 중 key가 hello인 데이터 삭제
delete_btn.setOnClickListener {
val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
val editor: SharedPreferences.Editor = sharedPreference.edit()
editor.remove("hello")
editor.apply()
}
//전체지우기 버튼 클릭시 sp1에 저장된 데이터 모두 삭제
delete_all_btn.setOnClickListener {
val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
val editor: SharedPreferences.Editor = sharedPreference.edit()
editor.clear()
editor.apply()
}
}
}
Reference
この問題について([アンドロイド]Sharedpreference実戦), 我々は、より多くの情報をここで見つけました https://velog.io/@dabin/안드로이드Sharedpreference실전テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol