SharedPreference

一、前言

定义:SharedPreferences是一个轻量级存储类,类似于Map集合,将数据以键值对的形式保存至xml文件中,可以被同一个应用共享访问。简单一点来说,SharedPreferences就是一个键值对对象,存放在对应文件名的xml中。
应用场景:许多软件都会有配置信息,而配置信息一般都不放在数据库中。在所有应用程序中,都必然涉及数据的交互。有些时候,应用程序有少量的数据需要保存,并且这些数据的格式很简单。比如:软件设置、用户账户设置,用户习惯设置等,这个时候就可以用到SharedPreferences。
如:在Windows 中采用ini文件存储,在java se应用中采用properties属性文件存储。在Android则采用SharedPreference类将数据存入到xml文件中。

二、使用方式

  1. 得到SharedPreference对象;2.操作文件;3.读取键值对

1.得到SharedPreference对象
因为SharedPreferences本身是一个接口,程序无法直接创建实例,只能通过context提供的getSharedPreferences()方法来获取实例

SharedPreferences sp = context.getSharedPreferences(
                    Constants.PREFERENCES_GLOBAL, Context.MODE_PRIVATE);
//参数name:存储键值对(key-value)的文件的名称,不加后缀;
//参数mode:指定文件操作模式,共有4种操作方式。

四种打开方式

2.操作SharedPreferences对象
SharedPreferences对象常用方法

SharedPreferences对象只能获取数据,如果需要操作或者存储数据还需要用到SharedPreferences的edit()方法来操作
3.操作Edit对象
Edit对象

三、操作实战

场景:在登录界面存储用户名

    /**
     * 存储用户名
     */
    public synchronized static void setUsername(Context context, String username) {
        SharedPreferences sp = context.getSharedPreferences(
                Constants.PREFERENCES_GLOBAL, Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sp.edit();
        edit.putString(Constants.PREFERENCES_GLOBAL_USERNAME, username);
        edit.commit();
    }

    public synchronized static String getUsername(Context context) {
        if (null != context) {
            SharedPreferences sp = context.getSharedPreferences(
                    Constants.PREFERENCES_GLOBAL, Context.MODE_PRIVATE);
            return sp.getString(Constants.PREFERENCES_GLOBAL_USERNAME, "");
        } else {
            return "";
        }
    }

//Activity中
AppGlobalInfo.setUsername(ContextUtils.getInstance().getContext(), response.body().oid_oper);

mAccount.oid_toper = AppGlobalInfo.getUsername(mContext);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容