相信Android的这个最简单的存储方式大家都很熟悉了,但是有一个小小技巧,也许你没有用过,今天就跟大家分享一下,我们可以把SharedPreferences封装在一个工具类中,当我们需要写数据和读数据的时候,就可以直接通过工具类的set和get方法来完成,类似JavaBean,这样使用起来就比较方便,快捷(建议项目中使用次数比较多使用)。好了,直接看看这段简单的代码吧:

public class SharePreferenceUtil {
private SharedPreferences sp;
private SharedPreferences.Editor editor; public SharePreferenceUtil(Context context, String file) {
sp = context.getSharedPreferences(file, context.MODE_PRIVATE);
editor = sp.edit();
} // 用户的密码
public void setPasswd(String passwd) {
editor.putString("passwd", passwd);
editor.commit();
} public String getPasswd() {
return sp.getString("passwd", "");
} // 用户的id,即QQ号
public void setId(String id) {
editor.putString("id", id);
editor.commit();
} public String getId() {
return sp.getString("id", "");
} // 用户的昵称
public String getName() {
return sp.getString("name", "");
} public void setName(String name) {
editor.putString("name", name);
editor.commit();
} // 用户的邮箱
public String getEmail() {
return sp.getString("email", "");
} public void setEmail(String email) {
editor.putString("email", email);
editor.commit();
} // 用户自己的头像
public Integer getImg() {
return sp.getInt("img", );
} public void setImg(int i) {
editor.putInt("img", i);
editor.commit();
} // ip
public void setIp(String ip) {
editor.putString("ip", ip);
editor.commit();
} public String getIp() {
return sp.getString("ip", Constants.SERVER_IP);
} // 端口
public void setPort(int port) {
editor.putInt("port", port);
editor.commit();
} public int getPort() {
return sp.getInt("port", Constants.SERVER_PORT);
} // 是否在后台运行标记
public void setIsStart(boolean isStart) {
editor.putBoolean("isStart", isStart);
editor.commit();
} public boolean getIsStart() {
return sp.getBoolean("isStart", false);
} // 是否第一次运行本应用
public void setIsFirst(boolean isFirst) {
editor.putBoolean("isFirst", isFirst);
editor.commit();
} public boolean getisFirst() {
return sp.getBoolean("isFirst", true);
}
}

第二种方法是更加简单方便:取值时只用传入context和对应的key,就能获取到对应的value;设值时,也是传入context和对应key和value即可,非常方便实用。

public class PreferenceUtils {
public static String getPrefString(Context context, String key,
final String defaultValue) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
return settings.getString(key, defaultValue);
} public static void setPrefString(Context context, final String key,
final String value) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
settings.edit().putString(key, value).commit();
} public static boolean getPrefBoolean(Context context, final String key,
final boolean defaultValue) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
return settings.getBoolean(key, defaultValue);
} public static boolean hasKey(Context context, final String key) {
return PreferenceManager.getDefaultSharedPreferences(context).contains(
key);
} public static void setPrefBoolean(Context context, final String key,
final boolean value) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
settings.edit().putBoolean(key, value).commit();
} public static void setPrefInt(Context context, final String key,
final int value) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
settings.edit().putInt(key, value).commit();
} public static int getPrefInt(Context context, final String key,
final int defaultValue) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
return settings.getInt(key, defaultValue);
} public static void setPrefFloat(Context context, final String key,
final float value) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
settings.edit().putFloat(key, value).commit();
} public static float getPrefFloat(Context context, final String key,
final float defaultValue) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
return settings.getFloat(key, defaultValue);
} public static void setSettingLong(Context context, final String key,
final long value) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
settings.edit().putLong(key, value).commit();
} public static long getPrefLong(Context context, final String key,
final long defaultValue) {
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
return settings.getLong(key, defaultValue);
} public static void clearPreference(Context context,
final SharedPreferences p) {
final Editor editor = p.edit();
editor.clear();
editor.commit();
}
}

Android之SharedPreferences两个工具类的更多相关文章

  1. Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  2. Android中创建倒影效果的工具类

                     一.有时候我们需要创建倒影的效果,我们接触最多的都是图片能够创建倒影,而布局依然可以创建倒影.       二.工具类代码 import android.graphi ...

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

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

  4. Android加载网络图片的工具类

    ImageView加载网络的图片 HttpUtil.java package com.eiice.httpuimagetils; import java.io.ByteArrayOutputStrea ...

  5. 转--Android中调用webservice的工具类

    最近学习WebService,感觉利用这个借口开发网站的Android客户端方便及了,用到一个工具类,这里铭记一下. public static final String WebServiceName ...

  6. Android OkHttp网络连接封装工具类

    package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...

  7. 015 Android md5密码加密及其工具类

    1.md5加密介绍 MD5算法是广泛使用的杂凑函数,也就是哈希函数,英文全拼是:Message Digest Algorithm,对应的中文名字是消息摘要算法. MD5加密:将字符串转换成 32位的字 ...

  8. android/java经常使用的工具类源代码

    anroid.java经常使用的工具类源代码,当中包含文件操作.MD5算法.文件操作.字符串操作.调试信息log.base64等等. 下载地址:http://download.csdn.net/det ...

  9. Android list加载图片工具类

    总体思路 Handler + looper + message 核心类 package com.base.imagechoose.util; import android.graphics.Bitma ...

随机推荐

  1. NSIS脚本调用C语言写的插件

    其实NSIS的官网已经提供了很多别人开发的插件了,今天需要用到GetVersion这个插件,这是不维护的插件了,不推荐用,但是由于现实中的问题,导致我不得不用这个插件. 所以就下载下来了. 下载下来之 ...

  2. b/s客户端和服务器的交互(转)

    原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有 ...

  3. 理解Spring MVC Model Attribute和Session Attribute

    作为一名 Java Web 应用开发者,你已经快速学习了 request(HttpServletRequest)和 session(HttpSession)作用域.在设计和构建 Java Web 应用 ...

  4. C++11中正則表達式測试

    VC++2010已经支持regex了, 能够用来编译下述代码. #include <string> #include <regex> #include <iostream ...

  5. 可失败构造器(Failable Initializers)

    Xcode6.1中Swift的最新版本是1.1,在该版本中引入了一个新的特性:可失败构造器.通过构造器初始化实际上是给class或struct的每一个存储属性(参数)提供初始值,进行对象实例化的过程. ...

  6. public,private,protected的区别

    一,public,private,protected的区别public:权限是最大的,可以内部调用,实例调用等.protected: 受保护类型,用于本类和继承类调用.private: 私有类型,只有 ...

  7. compass模块----Utilities----Sprites精灵图合图

    css雪碧图又叫css精灵或css sprite,是一种背景图片的拼合技术.使用css雪碧图,能够减少页面的请求数.降低图片占用的字节,以此来达到提升页面访问速度的目的.但是它也有令人诟病的地方,就是 ...

  8. WebApi2官网学习记录--- Authentication与Authorization

    Authentication(认证)   WebAPI中的认证既可以使用HttpModel也可以使用HTTP message handler,具体使用哪个可以参考一下依据: 一个HttpModel可以 ...

  9. Lanucherr 默认显示第几屏

    Launcher.java static final int SCREEN_COUNT = 5;static final int DEFAULT_SCREEN = 2;//第一页是从0开始计数,这里是 ...

  10. hdu Intelligent IME

    算法:字典树 题意:手机9键拼音:2:abc  3:def 4:ghi 5:jkl 6:mno 7:pqrs 8:tuv 9:wxyz: 第一行读入一个T,代表测试组数: 之后输入两个整数n和m, 有 ...