简单介绍:SharedPreferences是使用键值对的方式来存储数据的,也就是说,当保存一条数据的时候,给这条数据提供一个键,如果需要读取数据,只需要通过这个键就可以提取到对应的数据。

一:存储数据到SharePreferences中

  Android提供的三种主要方法得到SharedPreferences()

    1.Context里的getSharedPreferences()方法,该方法接收两个参数,第一个参数用于指定SharedPerferences的文件名(如果指定的文件不在则创建一个),第二个参数指定操作模式,主要有两个模式。MODE_PRIVATE(默认,与传入0效果一样,表示只有当前程序才能对这个SharedPerferences文件读写) 和 MODE_MULTI_PROCESS(一般用于会有多个线程中对同一个SharedPreferences文件进行读写)

    2.Activity中的getSharedPreferences(),与Context中类似,不过只接收一个操作模式(使用这个方法会将当前类名作为文件名)。

    3.PreferenceManager类中的getDefaultPreferences()方法,这是个静态方法,接收一个Context参数,并将程序的包名作为前缀来命名SharedPreferences文件。

  得到SharePreferences对象后,通过三步向SharePreferences文件存储数据:

    1.调用SharePreferences对象的edit()方法获取一个SharePreferences.Editor对象

    2.向SharePreferences.Editor对象中添加数据,是什么类型的数据就put什么类型,如putString()...

    3.commit()方法提交添加的数据。

public class MainActivity extends Activity {
private Button saveData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
saveData = (Button) findViewById(R.id.save_data);
saveData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = getSharedPreferences("data",
MODE_PRIVATE).edit();
editor.putString("name", "Tom");
editor.putInt("age", 28);
editor.putBoolean("married", false);
editor.commit();
}
});
}
}

  

二:从SHarePreferences中读取数据

  与存储数据相比,读取数据更加简单,先getSharePreferences()获取SharePreferences对象。在存储时putString()就getString()...

  这些对应的get方法,接收两个参数:键(传入数据时所用的键)和默认值(当传入的键找不到对应的值时会返回的默认值)。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
saveData = (Button) findViewById(R.id.save_data);
restoreData = (Button) findViewById(R.id.restore_data);
……
restoreData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences pref = getSharedPreferences("data",
MODE_PRIVATE);
String name = pref.getString("name", "");
int age = pref.getInt("age", 0);
boolean married = pref.getBoolean("married", false);
Log.d("MainActivity", "name is " + name);
Log.d("MainActivity", "age is " + age);
Log.d("MainActivity", "married is " + married);
}
});
}
}

    

最新文章

  1. 我的bootstrapTable的应用
  2. 使用 xcode 8 构建版本 iTunes Connect 获取不到应用程序的状态的解决办法
  3. hdu 3038 How Many Answers Are Wrong ( 带 权 并 查 集 )
  4. 【jmeter】属性和变量
  5. Linux磁盘系统基础知识(转载)
  6. entityframework多条件查询类
  7. M_LROOT,LD_LIBRARY_PATH, “Not all extension Dlls were loaded”问题原因及解决方法(持续更新)
  8. STL中deque
  9. 一、Python-----之变量
  10. 基于visual Studio2013解决面试题之1207堆排序
  11. PHP学习笔记--1,不总结,不掌握,不明白!
  12. Java基础之数据类型、内存、修饰符、代码块
  13. Python循环依赖问题的解决
  14. 使用Windows的mstsc远程桌面连接到Ubuntu图形界面(AWS上安装的Ubuntu系统)
  15. Java9都快发布了,Java8的十大新特性你了解多少呢?
  16. <7>Cocos Creator 节点 cc.Node
  17. java中使用MD5进行加密 BASE64Encoder 编码
  18. python 将txt内容写入excel
  19. Python - 3.6 学习四
  20. setsockopt之 TCP_KEEPIDLE/TCP_KEEPINTVL/TCP_KEEPCNT

热门文章

  1. 自定义滚轮效果选择器spinnerwheel的使用总结
  2. android studio 偶记
  3. 使用Spring AOP预处理Controller的参数
  4. leetcode面试准备:Valid Anagram
  5. bzoj1415
  6. java基于xml配置的通用excel单表数据导入组件(五、Action处理类)
  7. Unity3D游戏开发入门(一)
  8. struts2错误:The Struts dispatcher cannot be found.
  9. 初次运行 Git 前的配置
  10. selenium webdriver 环境搭建--java