Android中SharedPreferences的使用

来源:互联网 发布:网络课程退款问题 编辑:程序博客网 时间:2024/05/08 21:34

一、SharedPreferences简介

Android提供了多种存储方式,其中就包括了非常常用的SharedPreferences。SharedPreferences是一种轻量级的存储机制,无论是存数据和取数据都十分快速,而其的局限性也就是在“轻量”两个字当中。SharedPreferences中存储的数据格式简单,数据量少,而且SharedPreferences得数据存储于本地,所以共享性很低。

二、SharedPreferences的存储路径

1、SharedPreferences作为一种本地存储方式,不具备共享性。但是,多个程序之间可以互相读取SharedPreferences的数据。

2、SharedPreferences的存储路径为:data/data/packageName/shared_prefs目录下,以.xml的形式存储。

三、SharedPreferences的相关初始化的存储方式

SharedPreferences存储数据时,是以键值对的形式存取的。

1、初始化SharedPreferences

private SharedPreferences sharedPreferences;sharedPreferences = getSharedPreferences("sharedPreferencesName", Context.MODE_PRIVATE);

2、初始化编辑器

SharedPreferences.Editor editor = sharedPreferences.edit();

3、保存(提交)数据

editor.putBoolean("booleanName", false);//Boolean类型的数据,booleanName为键名,false为键值。(下文同理)editor.putFloat("floatName", 0.1f); //float类型editor.putInt("intName", 1); //int类型editor.putLong("longName", 1); //long类型editor.putString("stringName", "test") //String类型editor.commit(); //提交(保存)数据

4、获取数据

sharedPreferences.getBoolean("booleanName", false);sharedPreferences.getFloat("floatName", 0);sharedPreferences.getInt("intName", 0);sharedPreferences.getLong("longName", 0);sharedPreferences.getString("stringName", "");

5、删除数据

(1)删除单条数据

editor.remove("booleanName");editor.remove("floatName");editor.remove("intName");editor.remove("longName");editor.remove("stringName");

(2)清除所有数据

editor.clear().commit();

6、删除SharedPreferences

File file = new File("/data/data/" + getPackageName()       + "/shared_prefs", "sharedPreferencesName");if (file.exists()) {       file.delete();}

四、SharedPreferences的工具类编写

package com.jyy.CSDN;import android.content.Context;import android.content.SharedPreferences;import java.io.File;import java.util.Map;/** * Author: JiangYY * Date: 2016/5/12 20:02 * Describle: TODO SharePreference的工具类:对SharePreference的操作进行统一管理,下文中,声明了几个常用操作,其他的同理可得。 */public class SharePreferenceHelper {    private Context context;    private final String sharePreferencePath = "/data/data/" + context.getPackageName()            + "/shared_prefs";    private String testsharePreferenceName = "testsharePreference"; //测试用的SharePreference    private String testKey = "testKey"; //测试字段    public SharePreferenceHelper(Context context) {        this.context = context;    }    /**     * 新建SharePreference     *     * @param fileName 所添加的SharePreference的文件名     * @param map      所添加的数据集合     * @return     */    private boolean saveSharePreference(String fileName, Map<String, Object> map) {        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sharedPreferences.edit();        for (Map.Entry<String, Object> entry : map.entrySet()) {            String key = entry.getKey();            Object object = entry.getValue();            if (object instanceof String) {                editor.putString(key, (String) object);            }            if (object instanceof Integer) {                editor.putInt(key, (Integer) object);            }            if (object instanceof Float) {                editor.putFloat(key, (Float) object);            }            if (object instanceof Long) {                editor.putLong(key, (Long) object);            }            if (object instanceof Boolean) {                editor.putBoolean(key, (Boolean) object);            }        }        editor.commit();        return true;    }    /**     * 清除SharedPreferences中所有数据     *     * @param fileName 被清除数据的SharedPreferences文件名     */    private void clearSharedPreferences(String fileName) {        SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = preferences.edit();        editor.clear().commit();    }    /**     * 删除SharePreference文件     *     * @param fileName 被删除SharePreference的文件名     */    private void deleteSharedPreferences(String fileName) {        File file = new File(sharePreferencePath, fileName);        if (file.exists()) {            file.delete();        }    }    /**     * 测试SharePreference中,假设字段确定     *     * @param data 待存储的数据     * @return     */    private boolean saveTestData(String data) {        SharedPreferences sharedPreferences = context.getSharedPreferences(testsharePreferenceName, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sharedPreferences.edit();        editor.putString(testKey, data);        editor.commit();    }    /**     * 删除测试SharedPreferences中指定字段数据     *     * @param keyName 字段名     */    private void deleteTestData(String keyName) {        SharedPreferences sharedPreferences = context.getSharedPreferences(testsharePreferenceName, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sharedPreferences.edit();        editor.remove(keyName);    }}

0 0
原创粉丝点击