Android通过SharedPreferences实现自动登录记住用户名和密码功能

最近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实现自动登录记住用户名和密码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-10-22 01:50:44

Android通过SharedPreferences实现自动登录记住用户名和密码功能的相关文章

Android实现记住用户名和密码功能

Android 实现记住用户名和密码的功能是通过SharedPreference 存储来实现的.创建一个复选按钮,通过按钮的否选取来进行事件处理.若按钮选中存储账号和密码的信息.若按钮没有选中,则清空账号和密码的信息. 结果演示: 源代码下载地址: https://github.com/GXS1225/Android-----.git 分析 (1)判断是否输入了账号和密码 if(name.trim().equals("")){ Toast.makeText(this, "请您

Android:利用SharedPreferences实现自动登录

本文介绍了Android:利用SharedPreferences实现自动登录,具体如下: 主要代码: public class LoginActivity extends Activity { private EditText username; private EditText userpassword; private CheckBox remember; private CheckBox autologin; private Button login; private SharedPref

网页登录中实现记住用户名和密码的功能(完成自动登录)

error_reporting(0); session_start(); ?>  代码如下 复制代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml&

jquery cookie 与asp.net实现登录记住用户名密码

jquery实现cookie登录记住用户名密码问题,只需在页面写上相应js方法后台不用做任何处理,下次登录就能记住用户名和密码 先来介绍关于jquery读取cookie方法 example $.cookie('the_cookie', 'the_value'); 设置cookie的值 example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true}); 新

Android登录记住多个密码的实现方法

先给大家说下我实现的思路: 在popouWindow里面加上ListView,数据是把List以字符串按照JSON的样式存入本地,先看看效果 adapter_user_item.xml是listView item中的布局,就一个图片按钮和一个显示按钮 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/

防止浏览器记住用户名及密码的简单实用方法_javascript技巧

如何设置能禁止浏览器自动保存表单信息,比如用户名,密码? 现在很多浏览器都有自动填写功能,我在input上使用了autocomplete="off",但在有的浏览器上还是被记住了用户名跟密码,请问有没有更有效及简便的方法来防止浏览器记住用户名及密码? 1.针对浏览器记住密码 1).首先大部分浏览器都是根据表单域的type="password"来判断密码域的,所以针对这种情况可以采取"动态设置密码域"的方法: 复制代码 代码如下: <inpu

JQuery实现记住用户名和密码的方法

 这篇文章主要介绍了JQuery实现记住用户名和密码的方法,需要的朋友可以参考下  代码如下: <div>  <input id="username" type="text" class="txt1" value="请输入用户名" onclick="if(this.value=='请输入用户名'){this.value=''; }" onfocus="if(this.value=

电脑怎么设置自动登录系统不需要密码

一.以Win7系统为例: 1. 打开控制面板,查看方式为小图标,如下图所示: 2. 找到并打开用户账户选项,如下图所示: 3. 如果你之前有密码这里面会有[更改密码][删除密码]的选项,我们要清除WINDOWS登陆密码,我们点击[删除密码],界面如下图所示: 4. 这里我们把密码输进去,然后点击删除密码就可以清除了.(注:密码就是你的登录密码) 二.以XP系统为例: 1.打开控制面板,然后切换到经典视图,如下图所示:    2.找到用户账户,点击打开后,如下图所示: 3.点击你使用的用户名,我这

php使用cookie实现记住用户名和密码实现代码

  这篇文章主要介绍了php使用cookie实现记住用户名和密码实现代码,本文直接给出实现代码,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <meta http-equiv="Content-Type" content="text/html; char