翻翻git之---SharedPreferences好用的封装库 PreferencesManager

转载请注明出处:王亟亟的大牛之路

之前的那个整合库又更新了,东西会越来越多,方便大家找素材和学习,这里再安利下:https://github.com/ddwhan0123/Useful-Open-Source-Android

往常我们经常会用到SP,大致代码像这样:

SharedPreferences sharedPreferences = getSharedPreferences("wjj", Context.MODE_PRIVATE); 

Editor editor = sharedPreferences.edit();//获取编辑器

editor.putString("name", "wjj");
editor.putInt("age", 25);
editor.commit();//提交修改

然后结果就是在/data/data//shared_prefs目录下的wjj.xml

<?xml version=‘1.0‘ encoding=‘utf-8‘ standalone=‘yes‘ ?>
<map>
<string name="name">wjj</string>
<int name="age" value="25" />
</map>

你要说使用起来复杂么,也还好并不复杂但是总要走提交操作,增删查改什么还是要提交操作,那么间接的又增加了Activity的代码量。

今天早上翻Git的时候正好看到这个工具类就介绍给大家

git地址:https://github.com/ShawnLin013/PreferencesManager

Grade:

buildscript {
    repositories {
        jcenter()
    }
}

dependencies {
    compile ‘com.shawnlin:PreferencesManager:1.0.2‘
}

Eclipse:

把PreferencesManager copy进你的项目就好。

How to use?

使用起来还是比较的简便

首先在你的onCreate()方法里,加入以下代码

new PreferencesManager(this)
    .setName(name)
    .init();

他会初始化我们的SP工具类并且设置我们的文件名。

然后就是各种set 各种get方法了,很简单。

这里补充一句,作者为了让我们使用起来方便,也做了支持OBJ的操作(基于Gson实现的)

像这样:

// your object
class Person {

    public String name;

    public Person(String name) {
        this.name = name;
    }

}

// put object to preferences
PreferencesManager.putObject(key, new Person(name));

// get object from preferences
PreferencesManager.getObject(key, Person.class);

传入一个对象就行了,存取和简单数据类型一样。

下面是本人微信,文章内容有问题可以找我,想学习什么也可以跟我提(骗子,广告勿扰)

时间: 2024-08-04 14:08:06

翻翻git之---SharedPreferences好用的封装库 PreferencesManager的相关文章

翻翻git之---效果鲜明的类ViewPager库 ConvenientBanner(对图片载入部分进行改动)

转载请注明出处:王亟亟的大牛之路 昨天写了篇基础的View绘制的内容貌似观众老爷们不怎么喜欢.那再这里再安利下自己定义View时.用到Paint Canvas的一些温故.讲讲用路径绘画实现动画效果(基础篇 三) ViewPager相比大家都用烂了,实现也有多种多样,那为什么我又要贴这篇呢? 第一.表明态度,跟陈旧的universal-image-loader说再见 第二,确实内容写得不错 先来看下效果图: 这是默认的翻转模式,这里不做过多演示了.大家喜欢能够自己去尝试,动画库来源于 compil

第一百六十一节,封装库--JavaScript,完整封装库文件

封装库--JavaScript,完整封装库文件 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象,使其每次调用都是独立的对象 * $()创建库对象,有一个可选参数,参数有两种方式,1是传入的this,2是传入的字符串 * 可选参数说明: * 传入的this,this,就是当前对象本身 * * 传入的字符串,代表获取元素选择器 * 参数是元素选择器(id值.class值.标签名称)其中一样的字符串

第一百四十节,JavaScript,封装库--浏览器检测

JavaScript,封装库--浏览器检测 在函数库编写一个,浏览器检测对象 /** sys浏览器检测对象,对象下有两个属性,liu_lan_qi属性和xi_tong属性 * liu_lan_qi属性,检测浏览器名称和版本号,如:alert(sys.liu_lan_qi); * xi_tong属性,检测浏览器运行环境,如:alert(sys.xi_tong); **/ (function () { //闭包,自我执行 window.sys = {}; //全局变量对象,保存浏览器信息 var u

Git学习笔记(三)远程库(GitHub)协同开发,fork和忽略特殊文件

远程库 远程库,通俗的讲就是不再本地的git仓库!他的工作方式和我们本地的一样,但是要使用他就需要先建立连接! 远程库有两种,一个是自己搭建的git服务器:另一种就是使用GitHub,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库.友情提示:在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改).所以,不要把敏感信息放进去. 远程仓库的好处: 1.我们可以随时随地的与仓库建立连接,以实时存放我们开发的内容: 2.与他

第一百三十一节,JavaScript,封装库--CSS

JavaScript,封装库--CSS 将封装库里的方法,改成了原型添加方法 增加4个方法 tian_jia_class()方法,给获取到的元素添加class属性,参数是class属性值,可以连缀1 yi_chu_class()方法,给获取到的元素移除class属性,参数是要移除的class属性值,可以连缀2 she_zhi_link_css()方法,设置link连接.或style内嵌.中的CSS样式3 yi_chu_link_css()方法,移除link连接.或style内嵌.中的CSS样式4

js封装库1

创建库,分别创建了三个文件,demo.html   demo.js  base.js demo.html:连接引用外部两个JS文件 demo.js:是用来写一些调用封装库的操作的一些JS代码 base.js:这个就是封装库的JS文件了.里面会写上一些封装好的效果,用于提供给demo.js进行调用 JS中常用的通过几个方式获取页面上的元素对象数据 通过元素设置的ID获取 通过元素设置的name获取 通过元素的标签获取 JS中捕获了元素对象后我们通常会做的常规事情 捕获后,更改元素对象的CSS样式

第一百三十九节,JavaScript,封装库--CSS选择器

JavaScript,封装库--修改元素选择器 就是将构造库函数修改成元素选择器,像css那样,输入#xxx .xxx xxx  (获取指定id下的指定class下的指定标签元素) 修改后的基础库 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象,使其每次调用都是独立的对象 * $()创建库对象,有一个可选参数,参数有两种方式,1是传入的this,2是传入的字符串 * 可选参数说明: * 传入的

第一百三十五节,JavaScript,封装库--拖拽

JavaScript,封装库--拖拽 封装库新增1个拖拽方法 /** tuo_zhuai()方法,将一个弹窗元素实现拖拽功能 * 注意:一般需要在css文件将元素里的某一个区块光标设置成提示可以拖拽,如:cursor: move; * 无参 **/ feng_zhuang_ku.prototype.tuo_zhuai = function () { if (this.jie_dian.length == 1) { var yan_su = null; for (var i = 0; i < th

使用GIT BASH管理多个远程代码库

使用GIT BASH管理多个远程代码库技术 maybe yes 发表于2015-01-15 13:11 原文链接 : http://blog.lmlphp.com/archives/62  来自 : LMLPHP后院 我的另一篇文章<GITHUB之GIT BASH使用教程>, 最近一段时间,百度等搜索引擎也带来了一些流量,看到有很多网友浏览,也有网友来过多次.这篇文章再做一些补充,关于如何使用 GIT 推送代码到多个远程代码库.使用场景:比如我们的项目同时放到了 GITHUB 和 GITOSC