用于保存具有对应关系的键值对

import android.content.Context;
import android.content.SharedPreferences; import java.util.Set; import cgjr.com.cgjr.constants.Constants; /**
* Created by Administrator on 2016/4/13.
*/
public class UtilitySharedpreferences { private SharedPreferences.Editor spe;
private Context context;
//指定sharepreferences文件的名称
private String configxml = "";
private SharedPreferences sp; public UtilitySharedpreferences(Context context, String configxml) {
this.context = context;
this.configxml = configxml;
sp = context.getSharedPreferences(configxml, Context.MODE_PRIVATE);
spe = sp.edit();
} /**
* 保存键值对到xml文件中
*
* @param type 类型判断 1 boolean 2 float 3 int 4 long 5 string 6 stringset
* @param key
* @param value
*/
public void putMsg(int type, String key, Object value) {
switch (type) {
case Constants.BOOLEAN:
spe.putBoolean(key, (Boolean) value);
break;
case Constants.FLOAT:
spe.putFloat(key, (Float) value);
break;
case Constants.INT:
spe.putInt(key, (Integer) value);
break;
case Constants.LONG:
spe.putLong(key, (Long) value);
break;
case Constants.STRING:
spe.putString(key, (String) value);
break;
case Constants.STRINGSET:
spe.putStringSet(key, (Set<String>) value);
break;
}
spe.commit();
} /**
* 根据key值,获取xml中的内容
*
* @param type
* @param key
*/
public Object getMsg(int type, String key, Object value) {
Object obj = null;
switch (type) {
case Constants.BOOLEAN:
obj = sp.getBoolean(key, (Boolean) value);
break;
case Constants.FLOAT:
obj = sp.getFloat(key, (Float) value);
break;
case Constants.INT:
obj = sp.getInt(key, (Integer) value);
break;
case Constants.LONG:
obj = sp.getLong(key, (Long) value);
break;
case Constants.STRING:
obj = sp.getString(key, (String) value);
break;
case Constants.STRINGSET:
obj = sp.getStringSet(key, (Set<String>) value);
break;
}
return obj;
} }

其中Constants对应的代码为:

    public static final int BOOLEAN = 1;
public static final int FLOAT = 2;
public static final int INT = 3;
public static final int LONG = 4;
public static final int STRING = 5;
public static final int STRINGSET = 6;

设置为数字的话,更加便于写代码

工具类总结---(四)---Sharedpreferences保存的更多相关文章

  1. 使用LogPhoneUtil工具类在Android手机保存APP运行日志

    最近公司的测试老是提出这样那样的bug,当然也怪自己代码写的烂,所以测试总是会把app搞崩溃,而他们那边崩溃的时候还没有日志打印,自己回来再重现有的时候还真不好复现出来,因此麻烦事就来了.为了方便查看 ...

  2. 并发工具类(四)线程间的交换数据 Exchanger

    前言   JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch.CyclicBarrier.Semphore.Exchanger.Ph ...

  3. [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版

    (课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...

  4. Java并发工具类(四):线程间交换数据的Exchanger

    简介 Exchanger(交换者)是一个用于线程间协作的工具类.Exchanger用于进行线程间的数据交换.它提供一个同步点,在这个同步点两个线程可以交换彼此的数据.这两个线程通过exchange方法 ...

  5. String工具类之“四个判空方式”StringUtils.isNotBlank和StringUtils.isEmpty和StringUtils.isBlank和StringUtils.isNotEmpty

    一.判断str字符串都不为空==>StringUtils.isNotBlank(String str); 1 /** 2 * <p>检查一个字符串是否非空("") ...

  6. Android 分享一个SharedPreferences的工具类,方便保存数据

    我们平常保存一些数据,都会用到SharedPreferences,他是保存在手机里面的,具体路径是data/data/你的包名/shared_prefs/保存的文件名.xml, SharedPrefe ...

  7. JavaScript工具类(三):localStorage本地储存

    localStorage Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加.删除.修改.查询操作. ...

  8. Java并发(十六):并发工具类——Exchanger

    Exchanger(交换者)是一个用于线程间协作的工具类.Exchanger用于进行线程间的数据交换.它提供一个同步点,在这个同步点两个线程可以交换彼此的数据.这两个线程通过exchange方法交换数 ...

  9. SharedPreferences的工具类,使用起来方便、快捷

    SharedPreferences的工具类,使用起来方便.快捷:上代码:import android.content.Context;import android.content.SharedPref ...

  10. SharedPreferences的工具类

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

随机推荐

  1. Redis构建分布式锁

    1.前言 为什么要构建锁呢?因为构建合适的锁可以在高并发下能够保持数据的一致性,即客户端在执行连贯的命令时上锁的数据不会被别的客户端的更改而发生错误.同时还能够保证命令执行的成功率. 看到这里你不禁要 ...

  2. 基于ThinkPHP 5.0与Vue.JS 2.x的前后端开源开发框架VueThink

    VueThink 项目介绍 VueThink是一套基于Vue全家桶(Vue2.x + Vue-router2.x + Vuex)+ Thinkphp的前后端分离框架. 脚手架构建也可以通过vue官方的 ...

  3. .net core版 文件上传/ 支持批量上传,拖拽以及预览,bootstrap fileinput上传文件

    asp.net mvc请移步 mvc文件上传支持批量上传,拖拽以及预览,文件内容校验 本篇内容主要解决.net core中文件上传的问题  开发环境:ubuntu+vscode 1.导入所需要的包:n ...

  4. MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...

    下面是我update数据库时打印出来的异常: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSynt ...

  5. SQL Server 获取本周,本月,本年等时间内记录

    datediff(week,zy_time,getdate())=0 //查询本周 datediff(month,zy_time,getdate())=0 //查询本月 本季:select * fro ...

  6. java如何停止一个运行的线程?

    关于线程的一点心得 //首先导入需要的包 improt java.util.Timer;import java.io.File;import java.util.TimerTask; //首先需要创建 ...

  7. js实现多行图片点击(自动)左右无缝轮播特效

    /*效果图*/ HTML:    <div class="scroll">       <div class="picbox">     ...

  8. 初识JS

    今儿我遇到一特别恐怖的事儿,JS 刚开始的我看到JS感觉是懵逼的,翻开第一页,感觉是棒棒哒,再看第二页,感觉是easy的,看到第三页是恐怖的,当看到的第四页的时候,我感觉今年的清明节是为我准备的 废话 ...

  9. Unity Android路径及注意事项

    Application.temporaryCachePath==/storage/emulated/0/Android/data/com.***.***/cache Application.persi ...

  10. 浅析JS中的模块规范AMD和CMD

    一.AMD AMD就只有一个接口:define(id?,dependencies?,factory); 它要在声明模块的时候制定所有的依赖(dep),并且还要当做形参传到factory中,像这样: d ...