import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
 * 保持配置信息的工具类 2016-08-24
 *
 * @author lipanquan
 *
 */
public final class SharedPreferencesUtils {

private void SharedPreferencesUtils(){}

/**
     * 私有构造(单例)
     *
     * @param application
     *            上下文
     */
    private SharedPreferencesUtils(Application application) {
        sp = application.getSharedPreferences("setting", Context.MODE_PRIVATE);
    }

/**
     * 本类对象
     */
    private static SharedPreferencesUtils instance;

/**
     * SharedPreferences对象
     */
    private SharedPreferences sp;

/**
     * 对外提供获取本类对象的方法
     *
     * @param application
     *            上下文
     * @return SharedPreferences对象
     */
    public static SharedPreferencesUtils getInstance(Application application) {
        if (IsNull.isNull(instance)) {
            instance = new SharedPreferencesUtils(application);
        }
        return instance;
    }

/**
     * 读取字符串
     *
     * @param key
     *            键
     * @return String类型的值
     */
    public String getString(String key) {
        return sp.getString(key, "");
    }

/**
     * 保持字符串
     *
     * @param key
     *            键
     * @param value
     *            值
     */
    public void putString(String key, String value) {
        Editor edit = sp.edit();
        edit.putString(key, value);
        edit.commit();
    }

/**
     * 读取布尔类型数据
     *
     * @param key
     *            键
     * @return Boolean类型的值
     */
    public Boolean getBoolean(String key) {
        return sp.getBoolean(key, false);
    }
    
    /**
     * 读取布尔类型数据
     *
     * @param key
     *            键
     * @param defValue
     *            默认值
     * @return Boolean类型的值
     */
    public Boolean getBoolean(String key, boolean defValue) {
        return sp.getBoolean(key, defValue);
    }

/**
     * 保存布尔类型的数据
     *
     * @param key
     *            键
     * @param value
     *            值
     */
    public void putBoolean(String key, Boolean value) {
        Editor edit = sp.edit();
        edit.putBoolean(key, value);
        edit.commit();
    }

/**
     * 读取整型类型数据
     *
     * @param key
     *            键
     * @return Int类型的值
     */
    public Integer getInt(String key) {
        return sp.getInt(key, 0);
    }

/**
     * 保存整型类型的数据
     *
     * @param key
     *            键
     * @param value
     *            值
     */
    public void putInt(String key, Integer value) {
        Editor edit = sp.edit();
        edit.putInt(key, value);
        edit.commit();
    }

/**
     * 读取浮点型类型数据
     *
     * @param key
     *            键
     * @return Float类型的值
     */
    public Float getFloat(String key) {
        return sp.getFloat(key, 0);
    }

/**
     * 保存浮点型类型的数据
     *
     * @param key
     *            键
     * @param value
     *            值
     */
    public void putFloat(String key, Float value) {
        Editor edit = sp.edit();
        edit.putFloat(key, value);
        edit.commit();
    }

/**
     * 读取长整型类型数据
     *
     * @param key
     *            键
     * @return Long类型的值
     */
    public Long getLong(String key) {
        return sp.getLong(key, 0);
    }

/**
     * 保存长整型类型的数据
     *
     * @param key
     *            键
     * @param value
     *            Long值
     */
    public void putLong(String key, Long value) {
        Editor edit = sp.edit();
        edit.putLong(key, value);
        edit.commit();
    }
}

工具类_SharedPreferencesUtils的更多相关文章

  1. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  2. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  3. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  4. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

  5. Guava库介绍之实用工具类

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...

  6. Java程序员的日常—— Arrays工具类的使用

    这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...

  7. .net使用正则表达式校验、匹配字符工具类

    开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...

  8. WebUtils-网络请求工具类

    网络请求工具类,大幅代码借鉴aplipay. using System; using System.Collections.Generic; using System.IO; using System ...

  9. JAVA 日期格式工具类DateUtil.java

    DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...

随机推荐

  1. secureCrt常用命令

    一.常用命令: 1.ls 只列出文件名 (相当于dir,dir也可以使用) -A:列出所有文件,包含隐藏文件. -l:列表形式,包含文件的绝大部分属性. -R:递归显示. --help:此命令的帮助. ...

  2. [poj3686]The Windy's(费用流)

    题目大意: 解题关键:指派问题,待更. #include<cstdio> #include<cstring> #include<algorithm> #includ ...

  3. ueditor 1.2.6使用方法

    本文以php版本为例: 文件下载:http://ueditor.baidu.com/website/download.html 还可以自己先定义内容,然后下载,这样可以帮助我们精简不少东西. 以本地p ...

  4. ???Struts2框架03 session的使用、登录逻辑【session工作原理】

    1 登录逻辑 1.1 获取登录数据(例如:用户名.密码) 1.2 在控制层调用业务层来验证数据信息 1.3 登录成功:保存用户信息(服务器用session.浏览器用cookie),跳转到主页面 1.4 ...

  5. Spring第五天

    1. [简答题]:简述一下hibernate和spring框架的整合步骤: 答: 1.加入hibernate jar包 2.编写持久化类 3.添加Hibernate的配置文件:hibernate.cf ...

  6. dpdk中uio技术

    总结一下dpdk的uio技术 一:什么是uio技术 UIO(Userspace I/O)是运行在用户空间的I/O技术,Linux系统中一般的驱动设备都是运行在内核空间,而在用户空间用应用程序调用即可, ...

  7. C#调用C++类库的几种方式

    1.  直接调用C++类库中的公共方法 使用DllImport特性对方法进行调用,比如一个C++类库SampleCppWrapper.dll中的公共方法: extern "C" _ ...

  8. Posters TopCoder - 1684

    传送门 分析 首先我们不难想到1e4^5的暴力枚举,但显然这是不行的,于是我们考虑对于每一张海报肯定有一种最优情况使得它至少有一条边要么靠着板子的边要么靠着之前的某一张海报的边,这样我们便可以将复杂度 ...

  9. grep多条件和sed合并两行

    grep多条件,最简单的方式是使用正则表达式: egrep "条件1|条件2"   sed合并两行,将 1 2 3 4 合并成: 1 2 3 4 sed '$!N;s/\n/\t/ ...

  10. java Linkedhashmap源码分析

    LinkedHashMap类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是插入次序,或者是最近最少使用(LRU)的次序.只比HashMap慢一点:而在迭代访问时反而更快,因为它使用链表维 ...