Android数据存储————SharedPreference使用及封装

(一)Android数据存储————文件存储(内部存储):https://blog.csdn.net/sinat_29675423/article/details/85699131

(二)Android数据存储————文件存储(外部存储):https://blog.csdn.net/sinat_29675423/article/details/85705545

本文主要介绍sharedpreference的基本特征和使用方式,然后将其数据存取方式封装到一个工具类SharedPreferenceUtil中,便于调用。

实例:首次启动欢迎页

存储特点

sharedPreferences是一种轻型的数据存储方式,它的本质是基于xml文件存储key-value键值对数据,通常用来存储一些简单的配置信息。

数据存储方式

存储位置

其存储位置在/data/data/<包名>/shared_prefs目录下。
在这里插入图片描述

使用方法

获取sharedpreference对象:

Android获取SharedPreferences三种方式:

  • context.getPreferences(@PreferencesMode int mode):获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity。
  • context.getSharedpreferences(String name, @PreferencesMode int mode):通过Activity对象获取,属于整个应用程序,以第一参数的name为文件名保存在系统中,可以有多个。
  • PreferenceManager.getDefaultSharedPreferences(Context context):PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但是只有一个,Android会根据包名和PreferenceActivity的布局文件来起一个名字保存。

mode

  • Activity.MODE_PRIVATE 默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
  • Activity.MODE_APPEND 把新写入的内容追加到原文件中

读取数据

sharedPreferences.getString(key,(String) defValue)后面的value为默认值

注:sharedPreferences对象本身只能获取数据而不支持存储和修改,存储和修改是通过Editor对象实现的。

获取Editor对象

sharedPreferences.edit()

将键值对存入editor中

Editor.putString(key,value)
Editor.putInt(key,value)
可以支持的数据类型有:

提交

Editor.commit()同步进行
editor.apply()异步进行

封装SharedPreferenceUtil工具类

存入数据:SharedPreferenceUtil.getInstance().put(Context context, String key, Object value)
读取数据:SharedPreferenceUtil.getInstance().get(Context context, String key, Object defValue)

import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.Nullable;

/**
 * @function sharedPreference 工具类
 */
public final class SharedPreferenceUtil {
   

    private static final String FILE_NAME = "hello"; //文件名
    private static SharedPreferenceUtil mInstance;

    private SharedPreferenceUtil(){
   }

    public static SharedPreferenceUtil getInstance(){
   
        if(mInstance == null){
   
            synchronized (SharedPreferenceUtil.class){
   
                if(mInstance == null){
   
                    mInstance = new SharedPreferenceUtil();
                }
            }
        }
        return mInstance;
    }

    /**
     * 存入键值对
     * @param context
     * @param key
     * @param value
     */

    public void put(Context context, String key, Object value){
   
        
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值