最近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 初始化源码解析
# 小编
# 在此
# 而不
# 给大家
# 用户登录
# 所述
# 此为
# 给我留言
# 配置文件
# 感谢大家
# 键值
# 看个
# 是否正确
# 数据存储
# 疑问请
# 有任何
# 下午
# 目录下
# 是基于
相关文章:
MySQL查询结果复制到新表的方法(更新、插入)
网站制作企业,网站的banner和导航栏是指什么?
如何在景安云服务器上绑定域名并配置虚拟主机?
建站主机选购指南:核心配置与性价比推荐解析
移民网站制作流程,怎么看加拿大移民官网?
定制建站哪家更专业可靠?推荐榜单揭晓
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
建站之星如何快速解决建站难题?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何在阿里云购买域名并搭建网站?
制作门户网站的参考文献在哪,小说网站怎么建立?
建站之星展会模版如何一键下载生成?
建站之星导航配置指南:自助建站与SEO优化全解析
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何确保西部建站助手FTP传输的安全性?
香港服务器如何优化才能显著提升网站加载速度?
,南京靠谱的征婚网站?
家具网站制作软件,家具厂怎么跑业务?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
如何实现建站之星域名转发设置?
如何选择适配移动端的WAP自助建站平台?
如何快速搭建高效香港服务器网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何零成本快速生成个人自助网站?
如何通过西部建站助手安装IIS服务器?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
广平建站公司哪家专业可靠?如何选择?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
,在苏州找工作,上哪个网站比较好?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
手机网站制作与建设方案,手机网站如何建设?
如何用PHP工具快速搭建高效网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
制作网站的软件免费下载,免费制作app哪个平台好?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
家庭建站与云服务器建站,如何选择更优?
小程序网站制作需要准备什么资料,如何制作小程序?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何正确下载安装西数主机建站助手?
如何通过wdcp面板快速创建网站?
*服务器网站为何频现安全漏洞?
实现虚拟支付需哪些建站技术支撑?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何选择高效可靠的多用户建站源码资源?
如何快速生成专业多端适配建站电话?
*请认真填写需求信息,我们会在24小时内与您取得联系。