您的位置:首页 > 移动开发 > Android开发

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

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

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

原创,我在这里说明一下,这里的例子都是非常简单的例子,更适合初学者,只有先学会用,才能研究更深层次的东西,初学者千万不要陷入诸如每个参数到底是什么意思,这里不这样,如果那样会怎么样,这是无穷无尽的问题,非常影响入门,只有用熟悉之后,才更容易的去纠结这些东西,所以我在这里不写这些东西了。只适合初学者看看的例子。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: