来看看SharedPreferences的简单使用,这里要说重要一点,此种方式的存储属于内部存储,存储在手机内存里,内部存储属于应用本身,若此应用被卸载,则通过内部存储,存储的数据都将消失。

-------------------------------------------------------------------------

简单的使用SharedPreferences存储数据:

代码:

//获取SharedPreferences实例(因为是接口,所以不能直接new,系统为我们提供了方法)//String name 保存的文件名//int mode  操作文件的模式,下面是四种操作模式的详解//Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND//Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。//Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。//MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;//MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。SharedPreferences sharedPreferences = getSharedPreferences("user_info", Context.MODE_PRIVATE);//获取操作SharedPreferences实例的编辑器(必须通过此种方式添加数据)SharedPreferences.Editor editor = sharedPreferences.edit();//添加数据editor.putString("name", "rui");editor.putBoolean("isMarry", false);editor.putFloat("salary", 18888.88f);editor.putInt("age", 24);editor.putLong("args", 2L);//提交editor.commit();

这是典型四步,这样就可以通过SharedPreferences存储数据了,getSharedPreferences(MODE)有一个参数的重载,这表明默认使用当前Activity类的名字当作文件名字存储,那么文件存储到哪去了呢?  


如图,在手机内部存储里面的/data/data/<应用包名>/shared_prefs文件夹下面,shared_prefs文件夹刚开始没有,存储文件的时候自动生成。我们再导出这个文件看一看:


有没有很熟悉,典型的map结构,键值对, 这是为什么我们在存储的时候,用一系列put函数,和操作map基本一样。


接下来看看如何取出来:

//获取SharedPreference实例SharedPreferences sharedPreferences = getSharedPreferences("user_info", Context.MODE_PRIVATE);//取出数据(注意这里直接用实例取就行了,不用获取编辑器editor)String name = sharedPreferences.getString("name", "没找到");boolean isMarray = sharedPreferences.getBoolean("isMarray", false);float salary = sharedPreferences.getFloat("salary", 0.0f);int age = sharedPreferences.getInt("age", -1);long args = sharedPreferences.getLong("args", -1L);//用日志打印出来Log.i("MainActivity", name+isMarray+salary+age+args);

可以看出来,如果是取数据的话就简单多了,获取实例,填入文件名,直接按照key值取就行了。 值得注意的是,取值的方法第二个参数是:如果按照key找不到对应的值,将以这个默认值返回。  结果:


OK,综合例子今天就不放了,会这个存和取就够了,一般用在存储软件设置参数,和例如登陆时如果勾选了“记住密码”,可以将用户名和密码存储等待。

-------------------------------------------------------

原创,我在这里说明一下,这里的例子都是非常简单的例子,更适合初学者,只有先学会用,才能研究更深层次的东西,初学者千万不要陷入诸如每个参数到底是什么意思,这里不这样,如果那样会怎么样,这是无穷无尽的问题,非常影响入门,只有用熟悉之后,才更容易的去纠结这些东西,所以我在这里不写这些东西了。只适合初学者看看的例子。。。

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. android jni 使用流程
  3. Android简单实现Socket通信,客户端连接服务器后,服务器向客户端发
  4. android SQLiteDatabase
  5. android shell cp 文件到/system/xxx
  6. Android(安卓)对 SDCARD 卡 上的sqlite3 db 文件进行操作总结
  7. android应用程序---短信发送器
  8. Android(安卓)system.img 打包解包
  9. Android(安卓)导出 ANR 文件

随机推荐

  1. android 创建桌面快捷方式 、插件
  2. 编译android的linux内核
  3. android图表ichartjs
  4. Android Vibrator使用
  5. Android调用天气预报的WebService简单例
  6. Android(安卓)-- handler消息传送机制
  7. haproxy根据客户端浏览器进行跳转
  8. Android(安卓)Cause: org.jetbrains.plug
  9. Android--SoLoader,android动态加载so库
  10. Android Activity的启动