android数据存储之SharedPreferences

android studio关于sharedPreferences的数据存储 本人写这篇博客是为了复习之前学习的sharedPreferences的存储方法:本人刚学android所以如果我说的哪里有错请位见谅并指出谢谢! 如果是Android应用,Android 平台提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据, 文件存放在/data/ 阅读详情

SharedPreferences是SDK中的一个自带类,可以完成简单的数据存储。



一、特点:
1.是一种轻量级的数据存储方式
2.本质是基于XML(key-value)的形式存储的
3.通常用于存储一些简单的配置信息,如用户名和密码


      二、操作:
1.读取数据:SharedPreferences的对象来完成
2.更新数据:Editor的接口对象来完成


      三、代码实现:
  1.获取SharedPreferences对象
a) 获取安卓默认的pref对象,会建立/data/data/包名/shared_pref/xxx.xml文件
//参数:上下文对象 
SharedPreferences pref=PreferenceManeger.getDefaultSharedPreferences(this);
b) 自定义获取pref对象 xxx.xml的名称,对该xml的操作权限
SharedPreferences pref=getSharedPreferences("pref",MODE_PRIVATE);
  2.获得Editor对象
a) Editor editor=pref.edit();
  3.更新数据
editor.putString("name","张三");
editor.putInt("age",19);
editor.putBoolean("default",true);
editor.remove("default");


editor.commit();
  4.获得数据
String name=pref.getString("name");
int age=pref.getInt("age");


总结:xml中的数据除了editor.clear()和在手机应用程序中清空数据会一直有效!!!
我在写一个小Demo的时候,在onCreate外面初始化pref一直报空指针异常....!!!

搞了好久才发现,只有onCreate之后,才会有当前(this)对象!!!

MainActivity.java

package com.example.dsd;

import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class MainActivity extends Activity {

	private EditText mEtInput;
	private TextView mTvShow;
	private Button mBtnSave;
	private Button mBtnShow;
	private Button mBtnClear;

	private SharedPreferences pref;
	private Editor editor;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		pref = PreferenceManager.getDefaultSharedPreferences(this);
		editor = pref.edit();

		mEtInput = (EditText) findViewById(R.id.et_input);
		mTvShow = (TextView) findViewById(R.id.tv_show);
		mBtnSave = (Button) findViewById(R.id.btn_save);
		mBtnShow = (Button) findViewById(R.id.btn_show);
		mBtnClear = (Button) findViewById(R.id.btn_clear);

		mBtnSave.setOnClickListener(listener);
		mBtnShow.setOnClickListener(listener);
		mBtnClear.setOnClickListener(listener);
	}

	private OnClickListener listener = new OnClickListener() {

		@Override
		public void onClick(View v) {
			switch (v.getId()) {
			case R.id.btn_save:
				editor.putString("content", mEtInput.getText().toString());
				break;

			case R.id.btn_show:
				mTvShow.setText(pref.getString("content", "您还未存储").trim());
				break;

			case R.id.btn_clear:
				editor.clear();
				break;
			}
			editor.commit();
		}
	};
}

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/et_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btn_save"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="保存" />

    <Button
        android:id="@+id/btn_show"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="展示" />

    <Button
        android:id="@+id/btn_clear"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="清空" />

    <TextView
        android:id="@+id/tv_show"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>


sp(SharedPreferences)存储对象 其实主要是利用对象输出流(ObjectOutputStream)将对象转换为二进制数据,然后将二进制数据转换为字符串,再利用SP存储字符串即可。 核心代码: /** * 保存对象 * 针对复杂类型存储<对象> * 注意:要保存的对象必须序列化 * @param key * @param object *...... 阅读详情

相关推荐

android ClearEditText demo

clearEditText 简单好用,开发中一直用的是这个,分享给各位,赚点积分下载资源

android数据存储之SharedPreferences方式(全面 含 读 取)

在Android 中我们常常会存储一些比较小的数据,例如游戏的临时配置,和临时的用户名 密码 这时我们就会用到 SharedPreferences来存储一些小数据,他常常被成为轻量级的数据存储类,SharedPreferences如果你不是很理解你就将它理解为 网页里面的 Cookie 其实他的性质就类似与Cookie。 SharedPreferences他是以键值对来存储应用程序的配置信息的一种

白璐 | 产品经理 3996

SharedPreferences存储复杂的对象

介绍了SharedPreferences存储复杂的对象源码!

Android 使用SharedPreferences进行数据存储和读取数据

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPrefer

4808

Android输入框控件ClearEditText实现清除功能

主要为大家详细介绍了Android输入框控件ClearEditText实现清除功能,感兴趣的小伙伴们可以参考一下

基于 VS Code + CMake + Make + GNU工具链 + OpenOCD 的通用MCU开发环境搭建教程

以CH32V307(RISCV)和STM32F103(Cortex-M3)为例的Vscode+gnu单片机环境搭建。

余十三_的博客 2173

Android进阶——Sharedpreferences保存对象和图片等复杂类型的数据

Sharedpreferences保存序列化的对象和图片等复杂类型的数据

最美不过,心中有梦,身旁有你! 1万+

BIOS硬件监控实战:如何手动读取IT8738芯片的温度与风扇数据(附代码)

本文深入探讨了如何绕过操作系统和HWMonitor等监控软件,直接通过寄存器级操作读取IT8738超级I/O芯片的硬件监控数据。文章提供了从动态定位EC空间、构建底层读写函数到解码传感器寄存器映射的完整实战指南,并附有C语言代码示例,帮助开发者理解BIOS硬件监控的底层原理,适用于定制硬件开发与故障诊断。

weixin_29192211的博客 109

android sharedpreferences 存储对象,android中SharedPreferences实现存储用户名功能

1. 简介SharedPreferences是一种轻型的数据存储方式,通过key-value键值对的方式将数据存储在xml文件中,常用于存储简单的配置信息。2. 使用方式2.1 获取SharedPreferences对象Android中可通过以下三种方式获取SharedPreferences对象:2.2.1 Context类中的getSharedPreferences()接收两个参数,第一个参数指...

weixin_39805355的博客 358

告别裸机:在FreeRTOS上为STM32移植SOEM 1.4.0的完整指南

本文详细介绍了在FreeRTOS环境下为STM32H7系列芯片移植SOEM 1.4.0的完整指南,涵盖环境准备、任务架构设计、OSAL层适配及网络驱动优化等关键步骤。通过EtherCAT主站解决方案的实现,帮助开发者构建稳定可靠的工业自动化系统,提升实时通信性能。

weixin_33582311的博客 363

RobotStudio码垛机器人创建过程

首先导入一个IRB2600机器人,移动夹具的本地坐标原点,使原点位置为顶面中心(与法兰盘连接的部位)。对齐夹爪Smart组件的本地坐标和机器人末端法兰盘的坐标...

个人博客 1万+

【安卓数据存储】——SharedPreferences

【Android】数据存储(一) SharedPreferences详解0.222016.04.29 00:13:33字数 919阅读 13345SharedPreferences介绍 在Android开发中,经常需要将少量简单类型数据保存在本地,如:用户设置。这些需要保存的数据可能一两个字符串,像这样的数据一般选择使用SharedPreferences来保存。 SharedPreference...

qq_43748400的博客 354

YOLOv8【第十章:多任务扩展深度篇·第19节】YOLOv8 与 DeepLabV3+ 对比——实时性与精度的权衡!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1万+

深入剖析Android中最简单的数据存储方式:SharedPreferences

一. 使用SharedPreferences存储数据 使用 SharedPreferences 保存key-value对的步骤一般是这样: 使用Activity类的getSharedPreferences方法获取到 SharedPreferences 对象,指定文件名和访问权限 获得SharedPreferences.Editor对象,并使用该对象的 putXxx方法保存key-value对。 通过SharedPreferences.Editor的commit方法保存(提交)key-value对。

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 2681

【Simulink教程案例19】基于simulink的扩频通信系统建模与仿真

扩频是一种应用于数字调制信号的调制技术,可以提高传输信号的带宽。扩频通信具有抗干扰能力强,扩频增益越大,抗干扰能力越强。而且扩频通信具有很强的保密性,扩频后信号近似白噪声,功率谱密度也很低。扩频通信可用于多址通信。扩频调制有如下三个特点:① 扩频后信号的带宽远大于信号所需的带宽② 使用扩频码进行扩频调制,扩频码与信号中的数据相互独立③ 在接收端,通过将接收信号与扩频码的同步副本进行相关,实现解扩。

FPGA/MATLAB学习教程/源码/项目合作开发 2197

知识存储之Apache Jena

知识图谱的存储可以分为基于表结构的存储和基于图结构的存储。1️⃣基于表结构的存储基于表结构的存储利用二维的数据表对知识图谱中的数据进行存储。根据不同的设计原则,知识图谱可以具有不同的表结构:💨知识图谱实质上是一个个的三元组,一种简单直接的存储方式是设计一张三元组表用于存储所有三元组,有不少比较成熟的产品利用该形式存储知识图谱,包括Jena、Oracle、Virtuoso等。💨为每种类型构建一张表,同一类型的实例存放在相同的表中。

Puzzle的博客 6064

Android Studio SharedPreferences数据存储的学习

Android Studio SharedPreferences数据存储的学习 Android Studio 有三种数据存储的方式,作为入门,将上周学习的SharedPreferences形式的数据存储方式进行总结,发布在我的blog上 首先,我也是作为了解,先入门学习了一些相关知识 如下图所示,一般的使用方式是 1.获取SharePreferences对象,同时指定名称和访问权限 2.获取SharePreferences的编辑器对象,其中Editor是sharePreferences中的一个类 3.通

farzena的博客 3061

YOLO11 锚框机制全解析:从改进 K-means 聚类到自适应优化,附多场景实战(附代码)

摘要 YOLO11的锚框机制采用"自适应、动态化、场景感知"的设计理念,通过数据驱动的锚框生成、多尺度感知分配和实时优化策略,显著提升目标检测性能。相较于早期YOLO版本,YOLO11的锚框完全基于训练集目标分布自适应生成,并引入智能分配策略,使不同尺寸目标获得最优匹配。技术架构包含自适应锚框生成、多尺度分配器和动态优化模块,通过改进的K-means聚类和交并比计算实现精准匹配。YOLO11锚框机制在检测精度、训练稳定性和场景适应性方面均有显著提升,为复杂场景下的目标检测提供更优解决方案

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1319

Android数据存储之SharedPreferences

SharedPreferences是一种轻量级的数据存储方式,采用键值对的存储方式。 SharedPreferences**只能存储少量数据**,大量数据不能使用该方式存储,支持存储的数据类型有boolean、float、int、long、string。 SharedPreferences**存储到一个XML文件中的**,路径在**/data/data/<packagename>/shared_prefs/**下,文件名以及存储后面详细讲述

qq_41466437的博客 1537

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android中的5种数据存储方式之——SharedPreferences

Android中的5种数据存储方式之——SharedPreferences简介 SharedPreferences是Android平台上一个轻量级数据存储方式,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保到SharedPereferences中;当Activity重载,系统回调方法 onSaveInstanceState时,再从Shar

默 4783

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

安卓数据存储之SharedPreferences存储

(此博文使用的工具为Eclipse) 首先介绍一下SharedPreferences是使用键值对的方式来存储数据的,每次存储数据的时候需要给这条数据提供一个对应的键,这样读取数据的时候就可以根据这个键吧对应的值取出来。 使用SharedPreferences来进行数据持久化要比使用文件方便很多。 1、将数据存储到SharedPreferences中: 要想使用SharedPreferenc...

Imfondof 719

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android数据存储——SharedPreferences

Android数据存储——SharedPreferences 一、数据存储选项:Data Storage ——Storage Options【重点】 1、Shared PreferencesStore private primitive data in key-value pairs.保存简单的键值对数据。2、Internal StorageStore priv

luffy的专栏 1859

Android数据存储五大方式之-SharedPreferences

第一个值使得SharedPreferences存储的数据只能在本应用内获得,第二个和第三个。值分别使得其他应用可以读和读写本应用SharedPreferences存储的数据。(1)参数一为要保存的xml文件名,不同的文件名产生的对象不同,但同一文件名可以产。此处注意指定参数一时,不用加xml后缀,由。Key1是要查询的键,返回对应的值,当键不存在时,返回key2作为结果。可以实现数据的更新只需添加同键的键值对,和操作Map集合一样。删除参数部分键的键值对。(参数一,参数二);

2501_90212852的博客 666

Android 数据存储笔记一 SharedPreferences数据存储

问题一:为什么要引入数据存储? 所有的应用程序都必然会涉及数据的输入,输出,Android应用也不例外,应用程序的参数,设置,程序运行状态数据这些都需要保存到外部存储器上,这样系统关机之后数据才不会丢失。 问题二:何时使用SharedPreferences存储数据? SharedPreferences主要用来保存键值对形式的配置信息格式的数据。 一.SharedPrefer

一棵开花的树 503

android数据存储之SharedPreferences详解。

文章目录1.概念2.SharedPreferences应用2.1获取SharedPreferences对象的方法2.2存储数据实现 1.概念 1.它是一种轻量级的数据存储方式,采用键值对的存储方式。 2.它只能存储少量数据,支持存储的数据类型有booleans, floats, ints, longs, and strings。 3.存储到一个XML文件中的,路径在/data/data//shared_prefs/下。 4.默认存储路径:/data/data//shared_prefs 操作模式:MODE_

深耕安全技术研究 3052
上一篇: java中的Map、HashMap、HashTable
下一篇: 慕课网 小慕机器人总结
_低头的麦穗
博客等级 码龄12年 4粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值