Android 存储之 SharedPreferences 编码模板(工具类编码)

一、SharedPreferences

1、基本介绍
  1. SharedPreferences 是 Android 的一个轻量级存储工具,它采用 key - value 的键值对方式进行存储

  2. 它允许保存和读取应用中的基本数据类型,例如,String、int、float、boolean 等

  3. 保存共享参数键值对信息的文件路径为:/data/data/【应用包名】/shared_prefs/【SharedPreferences 文件名】.xml

2、使用步骤
(1)获取 SharedPreferences 实例
  1. 其中,fileName 是为 SharedPreferences 文件指定的名称

  2. mode 是文件的操作模式,通常是 MODE_PRIVATE(私有模式)

java">SharedPreferences sharedPreferences = context.getSharedPreferences(【fileName】, 【mode】);
(2)写入数据
  1. 使用 SharedPreferences.Editor 来编辑数据,通过 SharedPreferences 实例的 edit 方法获取 Editor 对象

  2. 然后使用 put 相关方法来添加或修改数据,当 key - value 不存在时为添加,当 key - value 存在时为修改

  3. 最后调用 commit 方法来提交更改

java">SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putString(【key】, 【value】);
edit.commit();
(3)读取数据
  1. 通过 SharedPreferences 实例的 get 相关方法来读取数据

  2. 如果 key 不存在,则返回 defValue 默认值

java">sharedPreferences.getString(【key】, 【defValue】);

二、SharedPreferences 工具类

1、代码
java">/*** SharedPreferences 工具类*/
public class MySPTool {/*** 存 String 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键名* @param value    键值*/public static void setString(Context context, String fileName, String key, String value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putString(key, value);edit.commit();}/*** 取 String 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键名* @return*/public static String getString(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getString(key, "");}// ----------------------------------------------------------------------------------------------------/*** 存 int 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键名* @param value    键值*/public static void setInt(Context context, String fileName, String key, int value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putInt(key, value);edit.commit();}/*** 取 int 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键名* @return*/public static int getInt(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getInt(key, -1);}// ----------------------------------------------------------------------------------------------------/*** 存 float 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键名* @param value    键值*/public static void setFloat(Context context, String fileName, String key, float value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putFloat(key, value);edit.commit();}/*** 取 float 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键名* @return*/public static float getFloat(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getFloat(key, -1);}// ----------------------------------------------------------------------------------------------------/*** 存 boolean 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键名* @param value    键值*/public static void setBoolean(Context context, String fileName, String key, boolean value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putBoolean(key, value);edit.commit();}/*** 取 boolean 类型的数据** @param context  上下文对象* @param fileName 文件名* @param key      键值* @return*/public static boolean getBoolean(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getBoolean(key, false);}// ----------------------------------------------------------------------------------------------------/*** 删除数据** @param context  上下文对象* @param fileName 文件名* @param key      键名*/public static void remove(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.remove(key);edit.commit();}/*** 删除所有数据** @param fileName 文件名* @param context  上下文对象*/public static void clear(Context context, String fileName) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.clear();edit.commit();}
}
2、代码解析
(1)String 类型的数据操作
  1. 存 String 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valueString键值
java">public static void setString(Context context, String fileName, String key, String value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putString(key, value);edit.commit();
}
  1. 取 String 类型的数据,如果 key 不存在,则返回默认值 “”(空字符串)
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
java">public static String getString(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getString(key, "");
}
(2)int 类型的数据操作
  1. 存 int 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valueint键值
java">public static void setInt(Context context, String fileName, String key, int value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putInt(key, value);edit.commit();
}
  1. 取 int 类型的数据,如果 key 不存在,则返回默认值 -1
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
java">public static int getInt(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getInt(key, -1);
}
(3)float 类型的数据操作
  1. 存 float 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valuefloat键值
java">public static void setFloat(Context context, String fileName, String key, float value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putFloat(key, value);edit.commit();
}
  1. 取 float 类型的数据,如果 key 不存在,则返回默认值 -1
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
java">public static float getFloat(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getFloat(key, -1);
}
(4)boolean 类型的数据操作
  1. 存 boolean 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valueboolean键值
java">public static void setBoolean(Context context, String fileName, String key, boolean value) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.putBoolean(key, value);edit.commit();
}
  1. 取 boolean 类型的数据,如果 key 不存在,则返回默认值 false
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
java">public static boolean getBoolean(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);return sharedPreferences.getBoolean(key, false);
}
(5)其他操作
  1. 删除数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
java">public static void remove(Context context, String fileName, String key) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.remove(key);edit.commit();
}
  1. 删除所有数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
java">public static void clear(Context context, String fileName) {SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);SharedPreferences.Editor edit = sharedPreferences.edit();edit.clear();edit.commit();
}

http://www.ppmy.cn/news/1522645.html

相关文章

html记账本改写:保存数据 localStorage。

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>记账本改写</title><style>table {user-select: none;/* width: 100%; */border-collapse: collapse;}table,th,td {border: 1px solid…

Hive服务部署及Datagrip工具使用

目录 Hive服务部署 Hiveserver2服务 1&#xff09;用户说明 2&#xff09;Hiveserver2部署 &#xff08;1&#xff09;Hadoop端配置 &#xff08;2&#xff09;Hive端配置 3&#xff09;测试 &#xff08;1&#xff09;启动Hiveserver2 &#xff08;2&#xff09;使用命…

tio websocket 客户端 java 代码 工具类

为了更好地组织代码并提高可复用性&#xff0c;我们可以将WebSocket客户端封装成一个工具类。这样可以在多个地方方便地使用WebSocket客户端功能。以下是使用tio库实现的一个WebSocket客户端工具类。 1. 添加依赖 确保项目中添加了tio的依赖。如果使用的是Maven&#xff0c;可以…

第四章 类和对象(2)

4.2 类 类是封装对象的属性和行为的载体&#xff0c;Java中定义类使用class关键字&#xff0c;其语法如下&#xff1a; class 类名称{// 成员变量// 成员方法()} 在Java语言中对象的属性以成员变量的形式存在&#xff0c;对象的方法以成员方法的形式存在。本节将对类与对象进行…

WordPress的安装与简单开发教程

WordPress是目前世界上最受欢迎的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;它以简便易用、扩展性强和庞大的生态系统著称。通过它&#xff0c;你可以轻松构建博客、企业网站、电子商务平台等多种类型的网站。本文将为你介绍WordPress的安装过程&#xff0c;以及…

如何规避SQL注入漏洞

1 引言 对于很多初学者而言&#xff0c;SQL注入攻击是一种很容易被忽略的安全漏洞&#xff0c;其原理很简单&#xff0c;在日常编码中需要注意规避&#xff0c;养成良好的系统安全意识。 2 原理 SQL注入漏洞产生的根本原因&#xff0c;就是在编码过程中手动拼接sql参数造成的…

IOS 18 发现界面(UITableView)Banner轮播图实现

发现界面完整效果 本文实现Banner轮播图效果 文章基于IOS 17 基于UITabBarController实现首页TabBar继续实现发现界面 实现逻辑 从发现界面的效果图可以看出&#xff0c;发现界面是一个列表&#xff0c;列表包含了不同的Item&#xff0c;我们可以将 banner部分看成是列表的一…

分享基于PDF.JS的移动端PDF阅读器代码

一、前言 在之前的文章《分享基于PDF.js的pdf阅读器代码》里提到了PC端基于PDF.js的阅读器&#xff0c;本文将提供针对移动端的版本。 二、pdfViewer 为了能够直接使用&#xff0c;这里分享一下经过简单修改后能直接使用的pdfViewer代码&#xff1a; pdfViewer代码目录&…

webpack - 五大核心概念和基本配置(打包一个简单HTML页面)

// 五大核心概念 1. entry&#xff08;入口&#xff09; 指示Webpack从哪个文件开始打包2. output&#xff08;输出&#xff09; 指示Webpack打包完的文件输出到哪里去&#xff0c;如何命名等3. loader&#xff08;加载器&#xff09; webpack本身只能处理js&#xff0c;json等…

如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?

在当今的互联网世界中&#xff0c;网络请求是数据交换的基础。无论是在开发Web应用程序、自动化测试还是进行数据抓取&#xff0c;掌握如何发送网络请求是一项基本技能。Lua&#xff0c;作为一种轻量级、高性能的脚本语言&#xff0c;经常被用于这些场景。本文将详细介绍如何使…

C++11新增特性:列表初始化(std::initializer_list) decltype、auto、nullptr、范围for

C11新增特性&#xff1a;列表初始化&#xff08;std::initializer_list&#xff09;& decltype、auto、nullptr、范围for 一、C11新增统一初始化方式1.1 新增方式1.2 初始化容器底层原理&#xff08;std::initializer_list&#xff09; 二、新增声明2.1 decltype2.3 auto &…

uniapp设置微信小程序的交互反馈

链接&#xff1a;uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗&#xff1a; title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon&#xff1a;error是设置我们失败的logo 设置的文字上…

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 哈希表这里用哈希集合Set()实现。左指针i&#xff0c;右指针j&#xff0c;从头遍历数组&#xff0c;若j指针指向的元素不…

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路&#xff0c;我们用栈来存1234.....&#xff0c;队列来存输入的一组数据&#xff0c;栈与队列进行匹配&#xff0c;相同就pop 机翻 1、条件准备 stk是栈&#xff0c;que是队列。 tt指向的是栈中下标&#xff0c;fr…

DPDK基础入门(五):报文转发

网络处理模块划分 Packet Input: 接收数据包&#xff0c;将其引入处理流程。Pre-processing: 对数据包进行初步处理&#xff0c;例如基本的检查和标记。Input Classification: 细化数据包的分类&#xff0c;例如基于协议或流进行分流。Ingress Queuing: 将数据包放入队列中进行…

Dubbo 安全方面措施

在分布式系统中&#xff0c;安全性是一个至关重要的因素&#xff0c;特别是对于像 Dubbo 这样的高性能 RPC 框架&#xff0c;确保服务的安全性和数据传输的完整性至关重要。Dubbo 作为一个成熟的分布式服务框架&#xff0c;在安全性方面提供了多种措施和配置选项&#xff0c;帮…

uniapp 给画作生成画框

<template><ax-page class"privateCustom"><gui-page :customHeader"true" ref"guipage"><template #gHeader><aHeader title"个性定制" :showTitle"true" back"2"></aHeader&g…

深度学习与大模型第4课:使用多种模型在Pima印度糖尿病数据集上的分类效果评估

文章目录 技术博客&#xff1a;使用多种模型在Pima印度糖尿病数据集上的分类效果评估数据集介绍数据预处理模型一&#xff1a;逻辑斯谛回归&#xff08;Logistic Regression&#xff09;模型二&#xff1a;支持向量机&#xff08;SVM&#xff09;模型三&#xff1a;决策树&…

1、正则表达式

1、正则表达式是一种用于描述文本模式的工具。它是由字符和特殊符号组成的字符串&#xff0c;描述了模式的重复或者多个字符&#xff0c;于是就可以按照某种模式匹配一系列有相似特征的字符串。它主要的作用是将文本用某种可被计算机识别的模式表现出来&#xff0c;为高级的文本…

Helm Deploy Online Rancher v2.9.1

文章目录 准备安装查看下载 准备 $ kubectl get node NAME STATUS ROLES AGE VERSION kube-master01 Ready control-plane 19d v1.29.5 kube-node01 Ready <none> 19d v1.29.5 kube-node02 Ready <none&…