Android通过SharedPreferences实现自动登录记住用户名和密码功能
发布时间 - 2026-01-11 02:13:08 点击率:次最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现。

SharedPreferences简介
SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
SharedPreferences使用实例:记住用户名密码自动登录
大致了解了SharedPreference之后,接下来看个记住用户名密码自动登录的例子:
package com.dt5000.ischool.activity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import com.dt5000.ischool.util.DTUtil;
import com.dt5000.ischool.util.MyApplication;
/**
* @author: duanyr
* @创建时间: 2012-11-13 下午2:36:47
*
* @类说明:登录界面
*/
@SuppressLint("WorldReadableFiles")
public class LoginActivity extends DTUtil {
private static final String TAG = "用户登录";
private EditText username;
private EditText password;
private CheckBox autoLogin;
private SharedPreferences sharedPreferences;
private String message;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyApplication.getInstance().addActivity(this);
sharedPreferences = this.getSharedPreferences("userInfo",Context.MODE_WORLD_READABLE);
if (sharedPreferences.getBoolean("AUTO_ISCHECK", false)) {
Intent intent = new Intent();
intent.setClass(LoginActivity.this, MainActivity.class);
startActivity(intent);
} else {
setContentView(R.layout.activity_login);
initView();
}
}
/**
* 初始化视图控件
*/
public void initView() {
Log.i(TAG, "初始化视图控件");
username = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
autoLogin = (CheckBox) findViewById(R.id.autoLogin);
// 默认记住用户名
username.setText(sharedPreferences.getString("userName", ""));
}
/**
* 点击登录按钮时触发的方法
* @param view
*/
public void userLogin(View view) {
String usernameString = username.getText().toString();
String passwordString = password.getText().toString();
if (validateUser(usernameString, passwordString)) {
Editor editor = sharedPreferences.edit();
editor.putString("userName", usernameString);
if (autoLogin.isChecked()) {// 自动登录
editor.putString("password", passwordString);
editor.putBoolean("AUTO_ISCHECK", true).commit();
}
editor.commit();
Intent intent = new Intent();
intent.setClass(LoginActivity.this, MainActivity.class);
startActivity(intent);
} else {
alert(this, message);
}
}
//游客登录
public void visitorLogin(View view) {
Intent intent = new Intent();
intent.setClass(LoginActivity.this, MainActivity.class);
startActivity(intent);
}
/**
* 验证用户名密码是否正确
*
* @param username
* @param password
* @return
*/
public boolean validateUser(String username, String password) {
Boolean flag = false;
try {
//...此处为调用web服务,验证用户名密码的服务,特此省略
flag = true;
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e(TAG, e.getMessage());
message = "连接服务器失败";
}
return flag;
}
/**
* 点击退出按钮时触发的方法
*/
public void logout_listener(View view) {
dialog_Exit(this);
}
/**
* 监听返回按钮,此为登录界面再返回的话给出退出提示
*/
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
dialog_Exit(this);
return false;
}
return false;
}
}
页面布局截图:
生成的配置文件位置和代码
userInfo.xml的具体代码如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="userName">777</string> <string name="password">111111</string> <boolean name="AUTO_ISCHECK" value="true" /> </map>
以上所述是小编给大家介绍的Android通过SharedPreferences实现自动登录记住用户名和密码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android记住密码
# 自动登录
# android
# sharedpreferences
# SharedPreference引发ANR原理详解
# Android SharedPreferences性能瓶颈解析
# Android中SharedPreference详解及简单实例
# Android SharedPreferences四种操作模式使用详解
# Android SharedPreferences实现记住密码和自动登录界面
# SharedPreference 初始化源码解析
# 小编
# 在此
# 而不
# 给大家
# 用户登录
# 所述
# 此为
# 给我留言
# 配置文件
# 感谢大家
# 键值
# 看个
# 是否正确
# 数据存储
# 疑问请
# 有任何
# 下午
# 目录下
# 是基于
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
昵图网官方站入口 昵图网素材图库官网入口
详解Oracle修改字段类型方法总结
大连网站制作公司哪家好一点,大连买房网站哪个好?
Android GridView 滑动条设置一直显示状态(推荐)
Laravel distinct去重查询_Laravel Eloquent去重方法
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何自定义建站之星模板颜色并下载新样式?
如何在阿里云高效完成企业建站全流程?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
高端云建站费用究竟需要多少预算?
PHP正则匹配日期和时间(时间戳转换)的实例代码
Linux安全能力提升路径_长期防护思维说明【指导】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
如何快速搭建高效可靠的建站解决方案?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Laravel如何处理文件下载请求?(Response示例)
,怎么在广州志愿者网站注册?
如何用西部建站助手快速创建专业网站?
Laravel如何配置和使用缓存?(Redis代码示例)
如何为不同团队 ID 动态生成多个“认领值班”按钮
使用Dockerfile构建java web环境
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
北京企业网站设计制作公司,北京铁路集团官方网站?
如何将凡科建站内容保存为本地文件?
音响网站制作视频教程,隆霸音响官方网站?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何在七牛云存储上搭建网站并设置自定义域名?
如何快速启动建站代理加盟业务?
Android自定义listview布局实现上拉加载下拉刷新功能
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
javascript基于原型链的继承及call和apply函数用法分析
C++时间戳转换成日期时间的步骤和示例代码
在Oracle关闭情况下如何修改spfile的参数
长沙做网站要多少钱,长沙国安网络怎么样?

