zoukankan      html  css  js  c++  java
  • SharedPreferences 的使用

    SharedPreferences是一种轻量级的数据存储方式。它可以用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己定义的xml文件中。

        SharedPreferences接口主要负责读取应用程序的Preferences数据,它提供了如下常用方法来访问SharedPreferences的key_value键值对。

       一般用在对app的配置信息的存储,和一些简单的需要保存的数据的存储。

    SharedPreferences常用的属性和方法

    方法名称

    描述

    public abstract boolean contains (String key)

    判断SharedPreferences是否包含特定key的数据

    public abstract SharedPreferences.Editor edit ()

    返回一个Edit对象用于操作SharedPreferences

    public abstract Map<String, ?> getAll ()

    获取SharedPreferences数据里全部的key-value对

    getXXX(String key,XXX defvlaue)

    获取SharedPreferences数据指定key所对应的value,如果该key不存在,返回默认值defValue。其中XXX可以是boolean、float、int、long、String等基本类型的值

    由于SharedPreference是一个接口,而且在这个接口里并没有提供写入数据和读取数据的能力。但是在其内部有一个Editor内部的接口,Edit这个接口有一系列的方法用于操作SharedPreference。

    Editor接口的常用方法

    方法名称

    描述

    public abstract SharedPreferences.Editor clear ()

    清空SharedPreferences里所有的数据

    public abstract boolean commit ()

    当Editor编辑完成后,调用该方法可以提交修改,而且必须要调用这个数据才修改

    public abstract SharedPreferences.Editor putXXX (String key, boolean XXX)

    向SharedPreferences存入指定的key对应的数据,其中XXX可以是boolean、float、int、long、String等基本类型的值

    public abstract SharedPreferences.Editor remove (String key)

    删除SharedPreferences里指定key对应的数据项

    SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,可以通过Context.getSharedPreferences(String name,int mode)来得到一个SharedPreferences实例

    name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data/<package name>/shared_prefs下(这个面试常问到)

    mode:是指定读写方式,其值有三种,分别为:

    Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写

    Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写

    Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。

    下面是我自己整理的SharedPreferences的使用接口,直接调用,很方便。希望帮到需要用的同志

    package com.example.app;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    
    public class Storage {
        private static final String SP_NAME = "flow_file";
        public static final String TotalMobileRxBytes = "TotalMobileRxBytes";
        public static final String LastMobileRxBytes = "LastMobileRxBytes";
        public static final String hasSend = "hassend";
        
        public static SharedPreferences getSharedPreferences(Context context){
            SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_WORLD_READABLE);
            return sp;
        }
        
        public static void saveString(Context con, String key, String value){
            SharedPreferences sp = getSharedPreferences(con);
            sp.edit().putString(key, value).commit();
            
        }
        public static void saveBoolean(Context con, String key, boolean value){
            SharedPreferences sp = getSharedPreferences(con);
            sp.edit().putBoolean(key, value).commit();
        }
        public static void saveLong(Context con, String key, Long value){
            SharedPreferences sp = getSharedPreferences(con);
            sp.edit().putLong(key, value).commit();
        }
        public static Long getLong(Context context, String key) {
                
                return getSharedPreferences(context).getLong(key, 0);
            }
            
        public static String getString(Context context, String key) {
                
                return getSharedPreferences(context).getString(key, "");
            }
        public static boolean getBlooean(Context context, String key) {
            
            return getSharedPreferences(context).getBoolean(key, false);
        }
        
    }
  • 相关阅读:
    uestc1307 windy数 ——数位DP入门题
    2013年4月3日 小雨,阴
    hdu1202 The calculation of GPA ——水题
    zoj 3693 Happy Great BG
    hdu 2035 人见人爱A^B ——同余的简单性质
    zoj2913 Bus Pass ——BFS入门题
    一个bug,持续更新……
    zoj 3406 Another Very Easy Task
    poj 1995 Raising Modulo Numbers ——快速幂
    hdu 1059 Dividing ——多重背包复习
  • 原文地址:https://www.cnblogs.com/yuanyuan-5683/p/SharedPreferences.html
Copyright © 2011-2022 走看看