SharedPreferences详解(存储、读取及代码)
SharedPreferences是通过键值对的方式来存储数据的。每当保存一条新的数据时需要给数据一个对应的键值,所以当要调用数据时就可以通过键值来调用数据。
SharedPreferences支持多种不同的数据类型存储,如果存储的数据类型为整型,那么读取的数据类型就是整型。
想要使用SharedPreferences存储数据,先要获得它的对象,有3种方法:
1、Context类中的getSharedPreferences()方法:
getSharedPreferences(String, int) 第一个参数为文件名称,第二个参数参数指定操作模式(MODE_PRIVATE(默认,只有当前应用可进行读写数据) 和 MODE_MULTI_PROCESS(用于有多个进程对同一个SharedPreferences文件读取的情况))。
2、Activity类中的getPreferences()方法:
这个方法只有一个参数,就是第一个getSharedPreferences()方法的第二个参数,因为使用这个方法时会自动将当前活动的类名作为SharedPreferences的文件名。
3、PreferenceManager类中的getDefaultSharedPreferences()方法:
这个一个静态方法,接受一个Context参数,自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。
得到了SharedPreferences对象后,就开始向SharedPreferences文件中存储数据。分3步:
1、调用SharedPreferences对象的edit()方法获取一个SharedPreferences.Editor对象;
2、向SharedPreferences.Editor对象中添加数据,添加一个布尔型就是putBooleam(),添加一个字符串就是putString(),第一个参数都是键值,第二个参数是数据,其他类型以此类推;
3、调用commit()方法将添加的数据提交,从而完成数据存储操作。
public class MainActivity extends Activity {private Button btn_save;private EditText ed_input;private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 实例化btn_save = (Button) findViewById(R.id.btn_save);ed_input = (EditText) findViewById(R.id.ed_input);tv = (TextView) findViewById(R.id.tv); // 获取SharedPreferences用于读取数据SharedPreferences getdataPreferences = getSharedPreferences("mydata",MODE_PRIVATE);// 读取数据,第一个参数是键值,第二个参数是找不到对应键值时的返回值String getdata = getdataPreferences.getString("input", "空");// 将读取到的值显示到TextView上tv.setText(getdata);btn_save.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 获取EditText中输入的数据String data = ed_input.getText().toString();// 1、获取一个SharedPreferences.Editor对象SharedPreferences.Editor spEditor = getSharedPreferences("mydata", MODE_PRIVATE).edit();// 2、向SharedPreferences.Editor对象中添加数据spEditor.putString("input", data);// 3、将添加的数据提交spEditor.commit();// 提示保存成功Toast.makeText(MainActivity.this, "success", 1000).show();}});}
}
运行下程序,在EditText中输入数据,点击保存按钮,退出程序,再打开,TextView显示刚刚保存的数据。
SharedPreferences详解(存储、读取及代码)相关推荐
- java访问本地文件_详解Java读取本地文件并显示在JSP文件中
详解Java读取本地文件并显示在JSP文件中 当我们初学IMG标签时,我们知道通过设置img标签的src属性,能够在页面中显示想要展示的图片.其中src的值,可以是磁盘目录上的绝对,也可以是项目下的相 ...
- 如何下载php-cs-fixer,详解使用php-cs-fixer格式化代码
详解使用php-cs-fixer格式化代码 1. 安装 $ cd /usr/local/bin $ wget https://cs.symfony.com/download/php-cs-fixer- ...
- [新手必备]Unity推箱子小游戏C#代码详解(第一篇-代码部分)
完整项目请参考博客:https://blog.csdn.net/qq_41676090/article/details/96300302 本文为推箱子小游戏C#代码详解第一篇的代码部分,主要讲解 Sy ...
- android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】
本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...
- linux 进程间通信 dbus-glib【实例】详解一(附代码)(d-feet工具使用)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- java学习 类变量 类方法_这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下类变量(...
这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类变量(static) 类变量是该类的所有对象共 ...
- 蓝牙:CRC原理详解(附crc16校验代码)
CRC原理详解(附crc16校验代码) 参考链接: https://www.cnblogs.com/esestt/archive/2007/08/09/848856.html Cyclic Redun ...
- 详解QQDIY名片json代码
先看一下json 接下来分析JSON 主要是设置名片背景图 第七行:"content": "https://res.abeim.cn/qq"这里的链接是图片直链 ...
- 最小生成树-Prim算法详解(含全部代码)
目录 适用条件 测试所用图 算法详解 Prim算法代码 全部代码 实验结果 适用条件 加权连通图 测试所用图 所用原图及生成过程 其中,(a) 为原图,圆圈里面是节点的名称,边上的数字是边的权值.由实 ...
- smali语言详解之static静态代码块的声明与静态变量初始化赋值位置
smali语言详解之static静态代码块的声明与静态变量初始化赋值位置 一.smali语言的静态代码块声明格式 .method static constructor <clinit>() ...
最新文章
- 容器,对象生命周期管理的基石
- Android Material Design按钮样式
- SpringBoot-(6)-日志SLF4j
- hpe服务器有哪些型号,HPE ProLiant DL80 Gen9 服务器 - 惠普服务器配置参数
- SCCM2012 R2实战系列之九:OSD(中)-- 捕获镜像
- Symbol Mc1000 快捷键 的 设置 事件 开发
- vs2008打开vs2010工程项目
- 论剑乌镇:历届互联网大会热词盘点
- 位图(bitmap)—— C语言实现
- Python-Matplotlib可视化(6)——自定义坐标轴让统计图清晰易懂
- ansible-handlers
- 最常用的css垂直居中方法
- word2vec字向量_Anything2Vec:将Reddit映射到向量空间
- PCAN-View 软件添加111K波特率选项
- opencv-牛刀小试
- 通过物理地址查计算机,别人知道我查电脑的物理地址,怎么处理
- 项目时间(项目活动持续时间估算、计划编制)笔记
- CSS复合选择器、元素显示模式、背景
- php教育网站设计案例_课程教学网站的设计与实现(MySQL)(含录像)
- 两篇科普文章【开创文章】
热门文章
- 计算机基础知识比赛主持稿,我校举办第一届计算机基础知识抢答赛
- apache(阿帕奇)的基本配置1
- php 时间戳 精确到秒,时间戳与时间相互转换(php .net精确到毫秒)
- 千锋PMP企业核心竞争力赋能计划,助力近百家企业提升人才动能
- 大数据到底是干什么用的?
- windows如何查看剪贴板历史
- QQ引流有什么技巧?QQ引流简单粗暴的4大技巧
- PHP生成海报 文字描边,海报字体 怎么为海报字体添加描边样式?海报文字描边怎么做?海报字体描边样式制作...
- 创新谈-数据库概念设计之几点见解-吴雨光
- 公文排版插件for Word/WPS【审计公文助手——让公文排版更快一点】