SharedPreference 保存用户数据

前几章节我们学习的自己读写文件的方式,只是 Android 中最基本的保存数据的方式,这种方式保存数据需要自己确定数据的格式,要自己序列化和反序列化,用起来特麻烦

Android 提供了一个轻量级的存储类 SharedPreferences,使用 XML 格式保存一些键值对数据

当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在 Wifi 下才能 联网等相关信息,我们这些信息为用户的偏好 设置

SharedPreferences

SharedPreferences 可以看出是一个 Map<string,Object> 的别名,所以后者有的方法 SharedPreferences 实例都有

  1. 首先实例化一个 SharedPreferences 对象

    SharedPreferences sp = mContext.getSharedPreferences("filename", Context.MODE_PRIVATE);
    
    1. mContext 就是上下文,如果在 Activity 可以使用 Activity.this 或者 getApplicationContext() 方法获得

    2. filename 就是要保存的文件名,不要加上 .xml 扩展名,因为系统自己会加上

    3. Context.MODE_PRIVATE 就是在 Android 文件存储与读写 说的文件模式,一般都用 Context.MODE_PRIVATE

  2. 调用 sp.edit() 获取 sp 对象的写编辑器

    SharedPreferences.Editor editor = sp.edit();
    
  3. 调用 editor.putXxxx() 写数据操作 , Xxx 表示类型

    editor.putString("username","imyufei")
    
  4. 调用 editor.commit() 提交和保存数据

  5. 调用 sp.getXxxx() 去处 Xxx 类型的数据

  6. 调用 sp.remove(key) 可以删除 key 对应的数据

简单的封装

我们把上面所有的过程都封装到一个类中,取名叫 SharedHelper

package cn.twle.android.common;

import android.content.Context;
import android.content.SharedPreferences;

import java.util.HashMap;
import java.util.Map;

public class SharedHelper {

    private Context mContext;

    public SharedHelper() {
    }

    public SharedHelper(Context mContext) {
        this.mContext = mContext;
    }


    //定义一个保存数据的方法
    public void save(String key, String value) {
        SharedPreferences sp = mContext.getSharedPreferences("ms_sp", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        editor.putString(key,value);
        editor.commit();
    }

    //定义一个读取 SP 文件的方法
    public String read(String key ) {
        Map<String, String> data = new HashMap<String, String>();
        SharedPreferences sp = mContext.getSharedPreferences("ms_sp", Context.MODE_PRIVATE);
        return sp.getString(key,"");
    }
}

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.