安卓开发学习10-1:数据存储:Shared Preferences存储
解析
什么是Shared Perferences

应用场景

- 配置信息
- 主题信息
- 游戏的积分信息等
存储路径
在本应用中的data-data-应用包-自定义名称xml文件下保存写入的数据信息

使用
获取步骤




读取步骤

实例
代码
1、需求:实现自动登录,例如qq的可以设置自动登录,然后下一次就不用再写登录账号密码
2、activity_main.xml:简易实现输入框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
tools:context=".MainActivity"> <EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="QQ号/手机号/邮箱"
android:layout_marginTop="300dp"/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:layout_marginTop="20dp"/>
<ImageButton
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/login"
android:layout_gravity="center"/>
</LinearLayout>
3、MainActivit.java
public class MainActivity extends AppCompatActivity {
//定义后台账号和密码
private String name = "fxz", pwd = "123";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取编辑框用户名和密码
EditText username_EditText = findViewById(R.id.username);
EditText password_EditText = findViewById(R.id.password);
//获取登录按键
ImageButton login = findViewById(R.id.login);
//获取Shared Preferences对象
final SharedPreferences sharedPreferences = getSharedPreferences("qqAutoLogin", MODE_PRIVATE);
/**********实现自动登录功能************/
//获取账号信息
String username = sharedPreferences.getString("username", null);
String password = sharedPreferences.getString("password", null);
//判断用户名和密码是否为空
if (username != null && password != null) {
//如果用户名和密码相同,实现自动登录
if (username.equals(name) && password.equals(pwd)) {
//通过Intent跳转登录
Intent intent = new Intent(MainActivity.this, MessageActivity.class);
//启动跳转界面
startActivity(intent);
}
} else {
/**********实现手动登录并储存账号和密码************/
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取输入的账号和密码
String local_username=username_EditText.getText().toString();
String local_password=password_EditText.getText().toString();
//获取Editor对象
SharedPreferences.Editor editor=sharedPreferences.edit();
if(local_username.equals(name) && local_password.equals(pwd)){
//这里保存账号和密码并提交有些多余
editor.putString("username",local_username);
editor.putString("password",local_password);
//提交信息
editor.commit();
//通过Intent跳转登录
Intent intent = new Intent(MainActivity.this, MessageActivity.class);
//启动跳转界面
startActivity(intent);
Toast.makeText(MainActivity.this, "已保存账号和密码", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "账号和密码错误", Toast.LENGTH_SHORT).show();
}
}
});
}
}
}
文件查看
使用Android Studio



安卓开发学习10-1:数据存储:Shared Preferences存储的更多相关文章
- 安卓开发学习之AutoCompleteTextView
最近在学习安卓开发,开始是看视频学的,基本上是照着老师的操作来,但其实老师也是按照安卓的开发文档来教的,于是决定试试自己看文档来学. 今天学到AutoCompleteTextView,一上来先按照Li ...
- 安卓开发学习笔记(三):Android Stuidio无法引用Intent来创建对象,出现cannot resolve xxx
笔者在进行安卓开发时,发现自己的代码语法完全没有问题.尤其是创建intent对象的时候,语法完全是正确的,但是Android Stuidio却显示报错,Intent类显示为红色,如图所示: 代码如下所 ...
- 安卓开发学习之Menu
安卓开发中菜单是一个很重要的组件,从安卓开发文档(http://wear.techbrood.com/guide/index.html)中可以看到,安卓UI设计中的Menu主要分为: A.Option ...
- 安卓开发学习日记 DAY1
1.eclipse安装,很简单 2.安卓sdk manager 下载安装 sdk manager是一个安卓开发所使用的sdk文件的管理程序,可以使用这个程序在官网上下载相应的安卓的api等.因为需要在 ...
- Android开发学习---如何写数据到外部存储设备(sd卡),Environment.getExternalStorageDirectory,怎么获取sd卡的大小?
本文主要介绍如何写数据到sd卡,这里主要到的技术是Environment中的方法. 1. 2.实现代码: /datasave/src/com/amos/datasave/savePasswordSer ...
- Android开发学习之路--数据持久化之初体验
上班第一天,虽然工作上处于酱油模式,但是学习上依旧不能拉下,接着学习android开发吧,这里学习数据持久化的 知识. 其实数据持久化就是数据可以保存起来,一般我们保存数据都是以文件,或者数据库的形式 ...
- 吴裕雄--天生自然 R语言开发学习:导入数据
2.3.6 导入 SPSS 数据 IBM SPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc 包中的spss.get()函数.函数spss.get() ...
- Android开发学习之SQLite数据存取浅析
一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低 ...
- 安卓开发学习历程1——《第一行代码》coolweather项目setOnItemClickListener函数,Sql语句修改对模拟app程序机影响
今天,将<第一行代码>最后实战的coolweather项目,认真做了一遍. 今晚,在书中第一阶段开发代码认眞在Android studio敲完,发现setOnItemClickListen ...
- Web jsp开发学习——连接数据库,数据的增加和删除
1.首先在newlist界面增加三个图表,带上事件 newlist.jsp <%@ page language="java" contentType="text/h ...
随机推荐
- 【面试题】JS 中这些继承方式你知道吗?
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第 29 天,点击查看活动详情 问题描述 继承 是基于面向对象的,使用 继承 可以让我们更好的复用以前开发的代码,缩短开发的周期.提 ...
- grafana+prometheus+tomcat 监控tomcat
一.前提 1.tomcat作为java项目首选的部署容器.但是,在做测试,或者是在运维管理生产服务器的时候,想要监控tomcat的实时运行情况,却不是那么容易的 2.grafana(已安装和prome ...
- 【SQL Server】中的日期函数和日期数据类型
SQL Server Date 函数 SQL Server的重要日期函数包括: 函数 描述 参数含义 GETDATE() 返回当前的日期和时间 DATEPART(datepart,date) 返 ...
- Telerik GridView ----Pdf
ExportToPDF exporter = new ExportToPDF(this.radGridView1); exporter.FileExtension = "pdf"; ...
- Jenkins Pipeline(一) - 创建一个新的pipeline
jenkins pipeline: 使用Goovy语法,以代码形式更自由地编写jenkins job. 代码文本被称为Jenkinsfile IDE: vscode 推荐安装vscode插件: jen ...
- nginx通过参数代理到其他站点
http { include mime.types; default_type application/octet-stream; resolver 8.8.8.8; ##Nginx0.6.18以后的 ...
- Java基础——IO模型详解
- rust 配置国内源,加速
[source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" # 指定镜像 replac ...
- vue使用websoket
参考链接:https://www.cnblogs.com/qisi007/p/10213886.html export default { name: "realdetail", ...
- Docker学习笔记-02 常用命令
1.启动类: 启动docker: systemctl start docker 停止docker: systemctl stop docker 重启docker: systemctl restart ...