Android通过SharedPreferences实现自动登录记住用户名和密码功能
程序员文章站
2023-01-26 20:50:42
最近android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠sharedpreferences进行实现。
sharedpreferences简介
sha...
最近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 SharedPreferences实现记住密码和自动登录
-
Android通过SharedPreferences实现自动登录记住用户名和密码功能
-
Javascript实现登录记住用户名和密码功能
-
通过jquery.cookie.js实现记住用户名、密码登录功能
-
Javascript实现登录记住用户名和密码功能的代码案例分享
-
Android通过SharedPreferences实现自动登录记住用户名和密码功能
-
JavaWeb使用Cookie模拟实现自动登录功能(不需用户名和密码)
-
JQuery记住用户名密码实现下次自动登录功能
-
JavaWeb使用Cookie模拟实现自动登录功能(不需用户名和密码)
-
JQuery记住用户名密码实现下次自动登录功能_jquery