網站首頁 編程語言 正文
SharedPreference
他的使用方法非常簡單,不夸張的說,僅需要一個 getSharedPreferences 就可以完成大部分操作
概念與權限
SharedPreference 存儲文件的位置在:data/data/你的工程包名/shared_prefs
getSharedPreferences
的第二個參數需要傳入一個操作模式,目前僅剩下 MODE_PRIVATE
這一個可選,他表示僅當前 app 可以操作此 SharedPreference
存儲數據
存儲三步走:
- 使用
getSharedPreferences.edit()
獲取一個Editor
對象 - 使用諸如
putString
方法,按照數據類型并以鍵值對的形式插入數據 - 最后使用
apply()
保存修改
方法一:實例化 editor 后按步驟執行
val editor = getSharedPreferences("data",Context.MODE_PRIVATE).edit() editor.putString("name","jack") editor.apply()
方法二:直接 lambda 解決,免去 apply
getSharedPreferences("data", Context.MODE_PRIVATE).edit { putString("name", "Tom") putInt("age", 28) putBoolean("married", false) }
獲取數據
這玩意就更簡單了,直接 getSharedPreferences 獲取存儲文件,然后按照 key 拿到 value 就好了
val prefs = getSharedPreferences("data", Context.MODE_PRIVATE) val name = prefs.getString("name", "") val age = prefs.getInt("age", 0) val married = prefs.getBoolean("married", false) Log.d("MainActivity", "name is $name") Log.d("MainActivity", "age is $age") Log.d("MainActivity", "married is $married")
簡單存儲案例
設置存取按鈕
在 mainactivity 的布局文件中,我們添加倆按鈕,一個存東西,一個取東西;
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/saveButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Save Data" /> <Button android:id="@+id/restoreButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Restore Data" /> </LinearLayout>
主代碼
寫在 MainAcitvity.kt
package com.zhiyiyi.listviewdemo import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Toast import androidx.core.content.edit import kotlinx.android.synthetic.main.activity_main.* import java.io.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) saveButton.setOnClickListener { getSharedPreferences("data", Context.MODE_PRIVATE).edit { putString("name", "Tom") putInt("age", 28) putBoolean("married", false) } } restoreButton.setOnClickListener { val prefs = getSharedPreferences("data", Context.MODE_PRIVATE) val name = prefs.getString("name", "") val age = prefs.getInt("age", 0) val married = prefs.getBoolean("married", false) Log.d("MainActivity", "name is $name") Log.d("MainActivity", "age is $age") Log.d("MainActivity", "married is $married") } } }
原文鏈接:https://blog.csdn.net/delete_you/article/details/127186812
相關推薦
- 2023-01-02 C語言刪除輸入字符串中的空格示例代碼_C 語言
- 2022-12-09 ReactQuery系列之數據轉換示例詳解_React
- 2022-09-29 Go語言select語句用法示例_Golang
- 2022-06-18 C++?詳細講解對象的構造順序_C 語言
- 2022-05-25 kubectl操作命令及使用說明總結_云和虛擬化
- 2022-12-23 C++類成員函數中的名字查找問題_C 語言
- 2022-03-05 C語言宏函數container?of()簡介_C 語言
- 2022-04-23 通過自定義指令實現 element-ui的tooltip組件 文本長度超出顯示不超出不顯示
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支