Android之SharedPreferences两个工具类
16lz
2021-01-25
相信Android的这个最简单的存储方式大家都很熟悉了,但是有一个小小技巧,也许你没有用过,今天就跟大家分享一下,我们可以把SharedPreferences封装在一个工具类中,当我们需要写数据和读数据的时候,就可以直接通过工具类的set和get方法来完成,类似JavaBean,这样使用起来就比较方便,快捷(建议项目中使用次数比较多使用)。好了,直接看看这段简单的代码吧:
[java] view plain copy- publicclassSharePreferenceUtil{
- privateSharedPreferencessp;
- privateSharedPreferences.Editoreditor;
- publicSharePreferenceUtil(Contextcontext,Stringfile){
- sp=context.getSharedPreferences(file,context.MODE_PRIVATE);
- editor=sp.edit();
- }
- //用户的密码
- publicvoidsetPasswd(Stringpasswd){
- editor.putString("passwd",passwd);
- editor.commit();
- }
- publicStringgetPasswd(){
- returnsp.getString("passwd","");
- }
- //用户的id,即QQ号
- publicvoidsetId(Stringid){
- editor.putString("id",id);
- editor.commit();
- }
- publicStringgetId(){
- returnsp.getString("id","");
- }
- //用户的昵称
- publicStringgetName(){
- returnsp.getString("name","");
- }
- publicvoidsetName(Stringname){
- editor.putString("name",name);
- editor.commit();
- }
- //用户的邮箱
- publicStringgetEmail(){
- returnsp.getString("email","");
- }
- publicvoidsetEmail(Stringemail){
- editor.putString("email",email);
- editor.commit();
- }
- //用户自己的头像
- publicIntegergetImg(){
- returnsp.getInt("img",0);
- }
- publicvoidsetImg(inti){
- editor.putInt("img",i);
- editor.commit();
- }
- //ip
- publicvoidsetIp(Stringip){
- editor.putString("ip",ip);
- editor.commit();
- }
- publicStringgetIp(){
- returnsp.getString("ip",Constants.SERVER_IP);
- }
- //端口
- publicvoidsetPort(intport){
- editor.putInt("port",port);
- editor.commit();
- }
- publicintgetPort(){
- returnsp.getInt("port",Constants.SERVER_PORT);
- }
- //是否在后台运行标记
- publicvoidsetIsStart(booleanisStart){
- editor.putBoolean("isStart",isStart);
- editor.commit();
- }
- publicbooleangetIsStart(){
- returnsp.getBoolean("isStart",false);
- }
- //是否第一次运行本应用
- publicvoidsetIsFirst(booleanisFirst){
- editor.putBoolean("isFirst",isFirst);
- editor.commit();
- }
- publicbooleangetisFirst(){
- returnsp.getBoolean("isFirst",true);
- }
- }
第二种方法是更加简单方便:取值时只用传入context和对应的key,就能获取到对应的value;设值时,也是传入context和对应key和value即可,非常方便实用。
[java] view plain copy- publicclassPreferenceUtils{
- publicstaticStringgetPrefString(Contextcontext,Stringkey,
- finalStringdefaultValue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- returnsettings.getString(key,defaultValue);
- }
- publicstaticvoidsetPrefString(Contextcontext,finalStringkey,
- finalStringvalue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- settings.edit().putString(key,value).commit();
- }
- publicstaticbooleangetPrefBoolean(Contextcontext,finalStringkey,
- finalbooleandefaultValue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- returnsettings.getBoolean(key,defaultValue);
- }
- publicstaticbooleanhasKey(Contextcontext,finalStringkey){
- returnPreferenceManager.getDefaultSharedPreferences(context).contains(
- key);
- }
- publicstaticvoidsetPrefBoolean(Contextcontext,finalStringkey,
- finalbooleanvalue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- settings.edit().putBoolean(key,value).commit();
- }
- publicstaticvoidsetPrefInt(Contextcontext,finalStringkey,
- finalintvalue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- settings.edit().putInt(key,value).commit();
- }
- publicstaticintgetPrefInt(Contextcontext,finalStringkey,
- finalintdefaultValue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- returnsettings.getInt(key,defaultValue);
- }
- publicstaticvoidsetPrefFloat(Contextcontext,finalStringkey,
- finalfloatvalue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- settings.edit().putFloat(key,value).commit();
- }
- publicstaticfloatgetPrefFloat(Contextcontext,finalStringkey,
- finalfloatdefaultValue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- returnsettings.getFloat(key,defaultValue);
- }
- publicstaticvoidsetSettingLong(Contextcontext,finalStringkey,
- finallongvalue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- settings.edit().putLong(key,value).commit();
- }
- publicstaticlonggetPrefLong(Contextcontext,finalStringkey,
- finallongdefaultValue){
- finalSharedPreferencessettings=PreferenceManager
- .getDefaultSharedPreferences(context);
- returnsettings.getLong(key,defaultValue);
- }
- publicstaticvoidclearPreference(Contextcontext,
- finalSharedPreferencesp){
- finalEditoreditor=p.edit();
- editor.clear();
- editor.commit();
- }
- }
更多相关文章
- Python3原生编写月份计算工具
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android中存取简单的数据
- 一个「Pure Android」主义者的手机桌面
- android - ANR keyDispatchingTimedOut
- Android(安卓)用户界面---XML布局
- Android(安卓)APP性能优化(最新总结)