Android学习——SharedPreferences
接下来的几个博文,来介绍安卓中的数据存储方式,安卓中的数据存储主要有四种方式:
1.SharedPreferences
2.SQLite
3.Content Provider
4.File
这篇博文主要介绍SharedPreferences存储方式。
SharedPreferences简介
SharedPreferences是android自带的一种轻量级的数据存储方式,本质是基于XML文件存储key-value键值对数据。由于其是轻量级的存储方式,所以通常用来存储一些简单的配置信息。虽然SharedPreferences是基于键值对的存储,但由于一些对象和图像可以转化成其对应的二进制编码,所以,SharedPreferences也可以实现对图片和对象的存储。
存储步骤
SharedPreferences对象,本身只能获取数据,而不能存储和修改。存储和修改需要editor对象实现,所以具体步骤如下:
1.获取SharedPreferences对象
2.通过SharedPreferences.edit()获取Editor对象
3.通过Editor接口的PutXXX方法来保存键值,其中XXX对应不同的数据类型
代码实现
利用SharedPreferences实现一个用户注册和登录界面,用户注册部分代码如下:
1.实例化SharedPreferences对象和Editor对象:
其中,注释语句中的代码只能把数据存入默认文件中,而getSharedPreferences方法可以制定存放的文件。
private void InitSharedPreferences() {// users= PreferenceManager.getDefaultSharedPreferences(SignupActivity.this);users=getSharedPreferences("users",MODE_PRIVATE);editor=users.edit();}
2.设置点击注册按钮后的点击事件:
在存储的文件中,把Key值设为用户名,Value值设为密码。需要注意的是,Java语言中,判断两个字符串是否相等,或者判断一个字符串是否为空,均需要调用String类中的方法equal和isEmpty,而不能直接用’==’或’!=’进行比较。
signup_button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String username=username_text.getText().toString();String passward=passward_text.getText().toString();if(username.isEmpty())Toast.makeText(getApplicationContext(),"请输入用户名",Toast.LENGTH_SHORT).show();else if(passward.isEmpty())Toast.makeText(getApplicationContext(),"请输入密码",Toast.LENGTH_SHORT).show();else{String name=users.getString(username,"");if(!name.isEmpty())Toast.makeText(getApplicationContext(),"用户名已存在,请使用其他用户名注册",Toast.LENGTH_SHORT).show();else{editor.putString(username,passward);editor.commit();Toast.makeText(getApplicationContext(),"注册成功!",Toast.LENGTH_SHORT).show();finish();}}}});
登录界面代码如下:
signin_button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String username=username_text.getText().toString();String passward=passward_text.getText().toString();if(username=="")Toast.makeText(getApplicationContext(),"请输入用户名",Toast.LENGTH_SHORT).show();else if(passward=="")Toast.makeText(getApplicationContext(),"请输入密码",Toast.LENGTH_SHORT).show();else //用户名和密码均不为空 {String passward_get=sharedPreferences.getString(username,"");if(passward_get.isEmpty())Toast.makeText(getApplicationContext(),"用户名不存在,请重新输入",Toast.LENGTH_SHORT).show();else //用户名存在 {if(!passward_get.equals(passward)) //密码错误Toast.makeText(getApplicationContext(),"密码错误,请重新输入",Toast.LENGTH_SHORT).show();else //密码正确,看是否自动登录,存入对应数据,然后登录界面 {if(islogin.isChecked()){editor.putString("isLogin",username);editor.commit();}else{editor.putString("isLogin","");editor.commit();}Intent intent=new Intent(SigninActivity.this,MainActivity.class);startActivity(intent);}}}}});
界面展示
转载于:https://www.cnblogs.com/J-inx/p/6354286.html
Android学习——SharedPreferences相关推荐
- Android学习笔记---16_采用SharedPreferences保存用户偏好设置参数
16_采用SharedPreferences保存用户偏好设置参数 Android学习笔记---16_采用SharedPreferences保存用户偏好设置参数 2013-03-08 16_采用Shar ...
- 学习Android之SharedPreferences使用
效果图例如以下: 当我们想让自己的属性设置保存下来,这时就须要SharedPreferences. 上面这个小程序,音乐状态是保存下来的.使用的上一次退出的状态. 进入DDMS,data文件下的dat ...
- Android学习路线
Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承 ...
- 《Android学习指南》目录
转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先 ...
- Android学习路线总结
title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...
- Android 系统(206)---Android 学习网站汇总
Android 学习网站汇总 <DT><H3 ADD_DATE="1515811987" LAST_MODIFIED="0">技术博客( ...
- Android:学习路线总结,绝对干货
转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/51252781 一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工 ...
- Android学习之——APP番茄工作法——小结(1)
2014-4-3补: 最近一直忘记回复:给位需要源码的,请到这里https://github.com/MrFuFuFu/TomatoTask 版本已经更新为1.0.1,且已在豌豆荚,应用宝,360手 ...
- Android学习--02(猜猜我的星座App源码+Android常用控件TextView+EditText+Button+ImangeView+DatePicker+App间通信+跳转页面)
猜猜我的星座App 1 Android常用控件 1.1 TextView控件 1.1.1 简介 1.1.2属性 1.1.3 扩展属性 1.1.4 TextView的使用方法 1.1.5总结 1.2 E ...
最新文章
- 数据统计之日增用户统计
- LBS 基于位置的服务
- MSB3721 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\nvcc.exe“ 已退出 返回代码为1
- 【聚类算法】sklearn聚类方法详解
- 微信小程序_组件学习_001
- 系统架构设计师 - 第三方认证服务
- tomcat配置及其中部分目录作用虚拟路径虚拟主机
- 面试题10:二进制中1的个数
- 张云飞 201771010143 《面对对象程序设计(java)》第十七周学习总结
- Angularjs interceptor
- Nginx的静态文件合并请求,加快网站的加载速度
- 背景知识:从熵(Entropy)到互信息(MI,Mutual Information)
- RPS基准点系统 2020
- C语言中的各种百分号都代表什么意思
- 趣图:程序员先发现下雨了
- redis常用命令getex_Redis常用命令整理
- 欢迎来到北工大换书网
- 鲁大师9m超级精简版
- 第001讲:我和Python的第一次亲密接触 | 课后测试题及答案(小甲鱼)
- 2019软科中国【计算机】专业大学排名