笔记39 | 数据存储之SharedPreferences的介绍及使用

地址

简书:http://www.jianshu.com/p/c10c08affa8f CSDN: http://blog.csdn.net/xiangyong_1521/article/details/51222418


概念

SharedPreferences:是android提供的一个轻量级的储存方式,当我们需要保存用户的某些settings值,需要轻量级的记忆操作等时使用! SharedPreferences的四种操作模式:

Context.MODEPRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容Context.MODEAPPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.Context.MODEWORLDREADABLEContext.MODEWORLDWRITEABLE用来控制其他应用是否有权限读写该文件.MODEWORLDREADABLE:表示当前文件可以被其他应用读取.MODEWORLDWRITEABLE:表示当前文件可以被其他应用写入.


例子

如图示,需要在项目中记录一个DATE和ODO值,其中ODO值为某个实时的can数据,DATE即为当前时间,点击右端的更新按钮就需要将这两个实时值存储在本地用,并显示:

/*
 * 存
 */
write("of",time(),ftv4,getActivity());
write("ff",time(),ftv4,getActivity());
write("af",time(),ftv4,getActivity());
write("eo",time(),ftv4,getActivity());
...
private void write(String s,String time,int odo, Context context){  
        SharedPreferences preferences = context.getSharedPreferences(s, Context.MODE_PRIVATE);  
        Editor editor = preferences.edit();  
        editor.putString("time", time);  
        editor.putInt("odo", odo);
        editor.commit();  
    } 
...
/*
 * 拿到当前的时间
 */
    public String time()
    {
        Date date=new Date();
        DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time=format.format(date);
        return time;
    }

private  void getDataFromSharePre(){//此时可以拿到存储的值进行判断了  
        SharedPreferences preferences_eo = getActivity().getSharedPreferences("eo", Context.MODE_PRIVATE);  
        SharedPreferences preferences_of = getActivity().getSharedPreferences("of", Context.MODE_PRIVATE);  
        SharedPreferences preferences_ff = getActivity().getSharedPreferences("ff", Context.MODE_PRIVATE);  
        SharedPreferences preferences_af = getActivity().getSharedPreferences("af", Context.MODE_PRIVATE);  

        time_eo = preferences_eo.getString("time", "");
        time_of = preferences_of.getString("time", "");
        time_ff = preferences_ff.getString("time", "");
        time_af = preferences_af.getString("time", "");

        odo_eo = preferences_eo.getInt("odo", 0);
        odo_of = preferences_of.getInt("odo", 0);
        odo_ff = preferences_ff.getInt("odo", 0);
        odo_af = preferences_af.getInt("odo", 0);

        tx_time_eo.setText(""+time_eo);
        tx_time_of.setText(""+time_of);
        tx_time_ff.setText(""+time_ff);
        tx_time_af.setText(""+time_af);

        tx_odo_eo.setText(""+odo_eo+"m");
        tx_odo_of.setText(""+odo_of+"m");
        tx_odo_ff.setText(""+odo_ff+"m");
        tx_odo_af.setText(""+odo_af+"m");
    }

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2017-11-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏郭霖

Android弹幕功能实现,模仿斗鱼直播的弹幕效果

大家好,感觉好像已经很久没更新博客了。前段时间主要是忙于新书的事情,时间比较紧张。而现在新书已经完稿,剩下的事情就都是出版社的工作了,那么我又可以抽出时间来写写...

4677
来自专栏wOw的Android小站

[Android][Framework] 从一个小问题了解STK加载内容的方式

这个界面从哪来的? 实际上,我们插入SIM卡,手机就会显示SimToolKit,打开就能看到一些和运营商相关的菜单。换了不同的卡菜单也会变。所以大概可以猜到,S...

721
来自专栏飞雪无情的博客

Android Intents and Intent Filters(三)

每个data定义一个URI和数据类型(MIME),URI由4个属性来定义,分别是android:scheme,android:host,android:port...

743
来自专栏一个会写诗的程序员的博客

使用 Kotlin 开发 Android 应用 | 8 个最优秀的 Android Studio 插件 Kotlin Android 素材butterknife8 个最优秀的 Android

http://jakewharton.github.io/butterknife/

1383
来自专栏java初学

android入门 — 多线程(一)

2626
来自专栏林冠宏的技术文章

实现一个网易云音乐的 BottomSheetDialog

作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:htt...

3147
来自专栏7号代码

Android应用界面开发——Handler(实现倒计时)

当一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,所以,主线程通常又被叫做UI线程。

882
来自专栏何俊林

Android Multimedia框架总结(二十三)MediaCodec补充及MediaMuxer引入(附案例)

前言:前面几章都是分析MediaCodec相关源码,有收到提问,说MediaCodec到底是硬解码还是软解码?看下今天的Agenda: MediaCodec到...

23410
来自专栏Samego开发资源

简单快捷的退出APP应用

1567
来自专栏移动开发面面观

React Native的列表显示

1344

扫码关注云+社区