使用SharedPreferences进行数据存储

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wyf2017/article/details/82631312

最近在学习android过程中自己动手做了一个小项目的一个功能模块:修改密码

【疑难】

在实现这个模块的过程中我先来整理下自己的思路,修改密码主要步骤如下

>首先是输入原来的密码,其次是输入新密码,再是确认新密码,最后通过设置按钮就可以实现对数据的修改

>其次我们输入原来的密码要去和用户数据库里面注册时候的密码进行校验,那么问题来了,我们该如何去获取用户登录进来的用户名和密码呢?

【解决方法】

>对于这个问题我自己心里知道但是有时候去百度我们组织的语言并不会获得相应的答案,我第一次百度,网上给我显示相关的问题描述是:Android 安卓实现页面相互跳转并相互传递参数,我自己看了下这些相关的资料但是我发现android 实现页面相互跳转只能从当前界面跳转到指定界面来进行相互间的传递参数,那么问题来了,如果我想跨界面进行跳转该如何实现呢?于是我自己看了下觉得这个方法不是我想要的于是继续琢磨。

>在上面我提到这个方法不可靠,于是换了个思路来解决,设想下android有没有能存储当前想保存的数据呢,网上搜索了下果然有我想要的答案,那就是使用SharedPreferences进行数据存储

【简单介绍SharedPreferences】

SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。 

SharedPreferences数据的四种操作模式 
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容 
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件. 
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件. 
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取. 
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入 
SharedPreferences 可以用来进行数据的共享,包括应用程序之间,或者同一个应用程序中的不同组件。比如两个activity除了通过Intent传递数据之外,也可以通过ShreadPreferences来共享数据。 

【实施方案】

>使用SharedPreferences进行数据存储

SharedPreferences sharedPreferences = getSharedPreferences("××××××", Context.MODE_PRIVATE);//×××代表自己取的文件名,这里你们自己任意取个名字,文件存放在/data/data/<package name>/shared_prefs目录下,这个目录点击tools---Android---Android device Montior----data----data---自己的包名

Editor editor = sharedPreferences.edit();//获取编辑器

//这里我是举的2个例子,从xml里面获取的数据然后分别保存到name和age中

editor.putString("name", "林计钦");

editor.putInt("age", 24);

editor.commit();//提交修改

>访问SharedPreferences中的数据

SharedPreferences sharedPreferences = getSharedPreferences("××××", Context.MODE_PRIVATE);//×××代表自己取的文件名

//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值

String name = sharedPreferences.getString("name", "");

int age = sharedPreferences.getInt("age", 1);

这样通过这2个步骤我们就可以实现对数据的共享或者获取了,看到这里是不是有点收获了,如果我这里没解释清楚我就附加一个链接供大家参考http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059133.html

 

 

 

阅读更多

没有更多推荐了,返回首页