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详解(存储、读取及代码)相关推荐

  1. java访问本地文件_详解Java读取本地文件并显示在JSP文件中

    详解Java读取本地文件并显示在JSP文件中 当我们初学IMG标签时,我们知道通过设置img标签的src属性,能够在页面中显示想要展示的图片.其中src的值,可以是磁盘目录上的绝对,也可以是项目下的相 ...

  2. 如何下载php-cs-fixer,详解使用php-cs-fixer格式化代码

    详解使用php-cs-fixer格式化代码 1. 安装 $ cd /usr/local/bin $ wget https://cs.symfony.com/download/php-cs-fixer- ...

  3. [新手必备]Unity推箱子小游戏C#代码详解(第一篇-代码部分)

    完整项目请参考博客:https://blog.csdn.net/qq_41676090/article/details/96300302 本文为推箱子小游戏C#代码详解第一篇的代码部分,主要讲解 Sy ...

  4. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  5. linux 进程间通信 dbus-glib【实例】详解一(附代码)(d-feet工具使用)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  6. java学习 类变量 类方法_这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下类变量(...

    这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类变量(static) 类变量是该类的所有对象共 ...

  7. 蓝牙:CRC原理详解(附crc16校验代码)

    CRC原理详解(附crc16校验代码) 参考链接: https://www.cnblogs.com/esestt/archive/2007/08/09/848856.html Cyclic Redun ...

  8. 详解QQDIY名片json代码

    先看一下json 接下来分析JSON 主要是设置名片背景图 第七行:"content": "https://res.abeim.cn/qq"这里的链接是图片直链 ...

  9. 最小生成树-Prim算法详解(含全部代码)

    目录 适用条件 测试所用图 算法详解 Prim算法代码 全部代码 实验结果 适用条件 加权连通图 测试所用图 所用原图及生成过程 其中,(a) 为原图,圆圈里面是节点的名称,边上的数字是边的权值.由实 ...

  10. smali语言详解之static静态代码块的声明与静态变量初始化赋值位置

    smali语言详解之static静态代码块的声明与静态变量初始化赋值位置 一.smali语言的静态代码块声明格式 .method static constructor <clinit>() ...

最新文章

  1. 容器,对象生命周期管理的基石
  2. Android Material Design按钮样式
  3. SpringBoot-(6)-日志SLF4j
  4. hpe服务器有哪些型号,HPE ProLiant DL80 Gen9 服务器 - 惠普服务器配置参数
  5. SCCM2012 R2实战系列之九:OSD(中)-- 捕获镜像
  6. Symbol Mc1000 快捷键 的 设置 事件 开发
  7. vs2008打开vs2010工程项目
  8. 论剑乌镇:历届互联网大会热词盘点
  9. 位图(bitmap)—— C语言实现
  10. Python-Matplotlib可视化(6)——自定义坐标轴让统计图清晰易懂
  11. ansible-handlers
  12. 最常用的css垂直居中方法
  13. word2vec字向量_Anything2Vec:将Reddit映射到向量空间
  14. PCAN-View 软件添加111K波特率选项
  15. opencv-牛刀小试
  16. 通过物理地址查计算机,别人知道我查电脑的物理地址,怎么处理
  17. 项目时间(项目活动持续时间估算、计划编制)笔记
  18. CSS复合选择器、元素显示模式、背景
  19. php教育网站设计案例_课程教学网站的设计与实现(MySQL)(含录像)
  20. 两篇科普文章【开创文章】

热门文章

  1. 计算机基础知识比赛主持稿,我校举办第一届计算机基础知识抢答赛
  2. apache(阿帕奇)的基本配置1
  3. php 时间戳 精确到秒,时间戳与时间相互转换(php .net精确到毫秒)
  4. 千锋PMP企业核心竞争力赋能计划,助力近百家企业提升人才动能
  5. 大数据到底是干什么用的?
  6. windows如何查看剪贴板历史
  7. QQ引流有什么技巧?QQ引流简单粗暴的4大技巧
  8. PHP生成海报 文字描边,海报字体 怎么为海报字体添加描边样式?海报文字描边怎么做?海报字体描边样式制作...
  9. 创新谈-数据库概念设计之几点见解-吴雨光
  10. 公文排版插件for Word/WPS【审计公文助手——让公文排版更快一点】