资源描述:
《SharedPreferences 的另一种场景的用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SharedPreferences的另一种场景的用法昨天,下班在家想做什么来着,然后想用SharedPreferences存点数据,但是不知道咋地突然想到,SharedPreferences是应用启动时一次性加到内存里的.适合少量的存储,多的话还是用数据库吧.实际项目中都是数据库,我私下写写demo就不搞那么麻烦了=.=然后,问题来了,如果我要使用SharedPreferences,如何在比较小的单位里存储更多的信息.好了,正题.1.昨天谷歌提供了国内的androiddeveloper官网!!!{=.=}激动!!!你的书签地址还是h
2、ttps://developer.android.com/index.html???{大雾}国内速度更快!!!地址:https://developer.android.google.cn/index.html{快快加书签!!!}2.最近同事推荐了款Markdown编辑器,感觉比我之前用的MarkdownPad2好用分享下,名字:Haroopad顺便丢个自己的GitHub仓库,收集了一些开发必须的工具,需要的可以去看看,顺便watchfuckstar...开发日常应该必备吧(今天发现的hosts不错,YouTube也可以看,已经提供了
3、七牛云下载)https://github.com/didikee/Dev_Tools3.我擦,真正题...思路:想起之前看源码的时候谷歌用二进制存储boolean值,然后我想了想,貌似可以用String存一些值.例如:"10101101":可以解读为:truefalsetruefalsetruetruefalsetrue但是,"1"也是一个字符,它不限于"1",也可以是2或3甚至*或者%等等字符就可以.1.定义Value:Value:是一些char类型的值,代表一些含义.我简单的定义了四种:publicabstractclassSP
4、Value{publicstaticfinalcharTRUE='1';//truepublicstaticfinalcharFALSE='0';//falsepublicstaticfinalcharDEFAULT='-';//默认的时候会是'-'publicstaticfinalcharERROR='=';//发生错误的时候可能会用'='}2.定义Key:Key:是由0~Integer.MaxValue(),其实就是String的脚标index.publicabstractclassSPKey{//抽象类,给子类继承}3.提供g
5、et和put功能定义功能接口:publicinterfaceISPDao{chargetValue(intkey);voidputValue(intkey,charvalue);}最后是实现类:publicfinalclassSPDaoimplementsISPDao{privatefinalContextcontext;publicstaticfinalStringSPDAO="spDao";publicstaticfinalStringSPKEY="spKey";publicSPDao(Contextcontext){this.
6、context=context;}@OverridepublicchargetValue(intkey){SharedPreferencessp=context.getSharedPreferences(SPDAO,Context.MODE_PRIVATE);StringallValues=sp.getString(SPKEY,"");Log.e("test","get:"+allValues);StringdefaultStr=String.valueOf(SPValue.DEFAULT);intmaxIndex=allValue
7、s.length()-1;if(key>maxIndex){SharedPreferences.Editoreditor=sp.edit();StringtempAdd="";for(inti=maxIndex+1;i<=key;i++){tempAdd+=defaultStr;}editor.putString(SPKEY,allValues+tempAdd);editor.apply();returnSPValue.DEFAULT;}else{returnallValues.charAt(key);}}@Overridepubl
8、icvoidputValue(intkey,charvalue){SharedPreferencessp=context.getSharedPreferences(SPDAO,Context.MODE_PRIVATE);Stringa