android简单实例---------SharedPreferences的简单使用与讲解

来源:互联网 发布:宝宝学早教软件下载 编辑:程序博客网 时间:2024/06/11 06:42

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

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

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