博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SharedPreferences的工具类
阅读量:6402 次
发布时间:2019-06-23

本文共 3230 字,大约阅读时间需要 10 分钟。

我们平常保存一些数据,都会用到SharedPreferences,他是保存在手机里面的,具体路径是data/data/你的包名/shared_prefs/保存的文件名.xml, SharedPreferences的使用也很简单,我自己就写了一个SharedPreferences的工具类,然后就保存在这里,等自己以后需要保存数据直接从这里copy代码,哈哈

工具类如下

package com.example.shortcut;import android.content.Context;import android.content.SharedPreferences;/** * SharedPreferences的一个工具类,调用setParam就能保存String, Integer, Boolean, Float, Long类型的参数 * 同样调用getParam就能获取到保存在手机里面的数据 * @author xiaanming * */public class SharedPreferencesUtils {    /**     * 保存在手机里面的文件名     */    private static final String FILE_NAME = "share_date";            /**     * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法     * @param context     * @param key     * @param object      */    public static void setParam(Context context , String key, Object object){                String type = object.getClass().getSimpleName();        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sp.edit();                if("String".equals(type)){            editor.putString(key, (String)object);        }        else if("Integer".equals(type)){            editor.putInt(key, (Integer)object);        }        else if("Boolean".equals(type)){            editor.putBoolean(key, (Boolean)object);        }        else if("Float".equals(type)){            editor.putFloat(key, (Float)object);        }        else if("Long".equals(type)){            editor.putLong(key, (Long)object);        }                editor.commit();    }            /**     * 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值     * @param context     * @param key     * @param defaultObject     * @return     */    public static Object getParam(Context context , String key, Object defaultObject){        String type = defaultObject.getClass().getSimpleName();        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);                if("String".equals(type)){            return sp.getString(key, (String)defaultObject);        }        else if("Integer".equals(type)){            return sp.getInt(key, (Integer)defaultObject);        }        else if("Boolean".equals(type)){            return sp.getBoolean(key, (Boolean)defaultObject);        }        else if("Float".equals(type)){            return sp.getFloat(key, (Float)defaultObject);        }        else if("Long".equals(type)){            return sp.getLong(key, (Long)defaultObject);        }                return null;    }}

使用也很简单,保存数据

SharedPreferencesUtils.setParam(this, "String", "xiaanming");SharedPreferencesUtils.setParam(this, "int", 10);SharedPreferencesUtils.setParam(this, "boolean", true);SharedPreferencesUtils.setParam(this, "long", 100L);SharedPreferencesUtils.setParam(this, "float", 1.1f);

 

获取数据

SharedPreferencesUtils.getParam(TimerActivity.this, "String", "");                                                                                        SharedPreferencesUtils.getParam(TimerActivity.this, "int", 0);SharedPreferencesUtils.getParam(TimerActivity.this, "boolean", false);SharedPreferencesUtils.getParam(TimerActivity.this, "long", 0L);SharedPreferencesUtils.getParam(TimerActivity.this, "float", 0.0f);

 

的呢,希望对看过文章的你有一点点的帮助!

 

转载于:https://www.cnblogs.com/mjblogs/p/4463186.html

你可能感兴趣的文章
Multi-Tenancy模式,基础服务大规模扩张的时候,是应该推进了。
查看>>
var result = eval('(' + data + ')');的学习
查看>>
【sqli-labs】Less7
查看>>
文件操作之循环
查看>>
【Java学习笔记之二十】final关键字在Java继承中的用法小结
查看>>
Apache-kylin-2.0.0-bin-hbase1x.tar.gz的下载与安装(图文详解)
查看>>
String literal is not properly closed by a double-quote eclipse
查看>>
第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制...
查看>>
ARM 编程平台+coresight
查看>>
[解读REST] 1.REST的起源
查看>>
Android零基础入门第39节:ListActivity和自定义列表项
查看>>
【mysql+RBAC】RBAC权限处理(转载:http://www.cnblogs.com/xiaoxi/p/5889486.html 平凡希)...
查看>>
LeetCode - 185. Department Top Three Salaries
查看>>
Java习题10.25
查看>>
《Gradle权威指南》--Android Gradle多渠道构建
查看>>
apache 配置会话保持
查看>>
CentOS7安装ipython
查看>>
文顶顶虽老,博客尚在
查看>>
mysql查询今天、昨天、本周、本月、上一月 、今年数据
查看>>
vprintf 和 vsnpintf 的用法
查看>>