Android: SharedPreferences的简单使用(数据可持久化)

【Android: SharedPreferences的简单使用(数据可持久化)】莫道桑榆晚,为霞尚满天。这篇文章主要讲述Android: SharedPreferences的简单使用(数据可持久化)相关的知识,希望能为你提供帮助。
1. SharedPreferences介绍:
 SharedPreferences 的作用是使用键值对的方式存储数据,且支持多种不同的数据类型存储。是android数据持久化方法中最简单的一种。这种方式主要用来存储比较简单的一些数据,  而且是标准的Boolean、Int、Float、Long、String等类型。
 android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。
 
2.获取SharedPreferences的三种方式:
要想使用 SharedPreferences 来存储数据,首先需要获取到 SharedPreferences 对象。Android中主要提供了三种方法用于得到 SharedPreferences 对象。
 1. Context 类中的 getSharedPreferences()方法:
  此方法接收两个参数,第一个参数用于指定 SharedPreferences 文件的名称,如果指定的文件不存在则会创建一个,第二个参数用于指定操作模式,主要有以下几种模式可以选择。MODE_PRIVATE 是默认的操作模式,和直接传入 0 效果是相同的。
  MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 这两种模式已在 Android 4.2 版本中被废弃。 

Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写; Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写; Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读; Context.MODE_APPEND:该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件;

  2. Activity 类中的 getPreferences()方法:
  这个方法和 Context 中的 getSharedPreferences()方法很相似,不过它只接收一个操作模式参数,因为使用这个方法时会自动将当前活动的类名作为 SharedPreferences 的文件名。
  3. PreferenceManager 类中的 getDefaultSharedPreferences()方法:
  这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。 
3.SharedPreferences的使用
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。使用Preference来存取数据,用到了SharedPreferences接口和SharedPreferences的一个内部接口SharedPreferences.Editor,这两个接口在android.content包中。
1)写入数据: //步骤1:创建一个SharedPreferences对象 SharedPreferences sharedPreferences= getSharedPreferences("data",Context.MODE_PRIVATE); //步骤2: 实例化SharedPreferences.Editor对象 SharedPreferences.Editor editor = sharedPreferences.edit(); //步骤3:将获取过来的值放入文件 editor.putString("name", “ Tom” ); editor.putInt("age", 28); editor.putBoolean("marrid",false); //步骤4:提交 editor.commit(); 2)读取数据: SharedPreferences sharedPreferences= getSharedPreferences("data", Context .MODE_PRIVATE); String userId=sharedPreferences.getString("name",""); 3)删除指定数据 editor.remove("name"); editor.commit(); 4)清空数据 editor.clear(); editor.commit();

 
参考文章:ghroosk

    推荐阅读