自动登录

iOS 自动登录,登录过程中一直显示加载页 iOS开发中 如果客户端做的人性化一点肯定会考虑自动登录 其实原理很简单,就是再首次登录成功之后将用户名和密码存入userdefault 下次登录的时候判断usedefault中有没有存储用户名密码,如果有的话就绕过登录界面直接登录 但是在做的过程中遇到了一个问题 现在做一整理,供大家学习,指正 一般实现自动登录都是在加载页中去实现, 但是登录一般都需要与服务器通信,是异步的,而加 阅读详情

最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现。

SharedPreferences简介

SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。

SharedPreferences使用实例:记住用户名密码自动登录

大致了解了SharedPreference之后,接下来看个记住用户名密码自动登录的例子:

[java]  view plain copy
  1. package com.dt5000.ischool.activity;  
  2.   
  3. import android.annotation.SuppressLint;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6. import android.content.SharedPreferences;  
  7. import android.content.SharedPreferences.Editor;  
  8. import android.os.Bundle;  
  9. import android.util.Log;  
  10. import android.view.KeyEvent;  
  11. import android.view.View;  
  12. import android.widget.CheckBox;  
  13. import android.widget.EditText;  
  14.   
  15. import com.dt5000.ischool.util.DTUtil;  
  16. import com.dt5000.ischool.util.MyApplication;  
  17.   
  18. /** 
  19.  * @author: duanyr 
  20.  * @创建时间: 2012-11-13 下午2:36:47 
  21.  *  
  22.  * @类说明:登录界面 
  23.  */  
  24. @SuppressLint("WorldReadableFiles")  
  25. public class LoginActivity extends DTUtil {  
  26.   
  27.     private static final String TAG = "用户登录";  
  28.   
  29.     private EditText username;  
  30.     private EditText password;  
  31.     private CheckBox autoLogin;  
  32.     private SharedPreferences sharedPreferences;  
  33.     private String message;  
  34.   
  35.     @Override  
  36.     public void onCreate(Bundle savedInstanceState) {  
  37.         super.onCreate(savedInstanceState);  
  38.         MyApplication.getInstance().addActivity(this);  
  39.           
  40.         sharedPreferences = this.getSharedPreferences("userInfo",Context.MODE_WORLD_READABLE);  
  41.   
  42.         if (sharedPreferences.getBoolean("AUTO_ISCHECK", false)) {  
  43.               
  44.             Intent intent = new Intent();  
  45.             intent.setClass(LoginActivity.this, MainActivity.class);  
  46.             startActivity(intent);  
  47.               
  48.         } else {  
  49.             setContentView(R.layout.activity_login);  
  50.             initView();  
  51.         }  
  52.   
  53.     }  
  54.   
  55.     /** 
  56.      * 初始化视图控件 
  57.      */  
  58.     public void initView() {  
  59.         Log.i(TAG, "初始化视图控件");  
  60.   
  61.         username = (EditText) findViewById(R.id.username);  
  62.         password = (EditText) findViewById(R.id.password);  
  63.         autoLogin = (CheckBox) findViewById(R.id.autoLogin);  
  64.           
  65.         // 默认记住用户名  
  66.         username.setText(sharedPreferences.getString("userName", ""));  
  67.   
  68.     }  
  69.   
  70.     /** 
  71.      * 点击登录按钮时触发的方法 
  72.      * @param view 
  73.      */  
  74.     public void userLogin(View view) {  
  75.         String usernameString = username.getText().toString();  
  76.         String passwordString = password.getText().toString();  
  77.   
  78.         if (validateUser(usernameString, passwordString)) {  
  79.   
  80.             Editor editor = sharedPreferences.edit();  
  81.             editor.putString("userName", usernameString);  
  82.               
  83.             if (autoLogin.isChecked()) {// 自动登录  
  84.                 editor.putString("password", passwordString);  
  85.                 editor.putBoolean("AUTO_ISCHECK", true).commit();  
  86.             }  
  87.             editor.commit();  
  88.               
  89.             Intent intent = new Intent();  
  90.             intent.setClass(LoginActivity.this, MainActivity.class);  
  91.             startActivity(intent);  
  92.         } else {  
  93.             alert(this, message);  
  94.         }  
  95.     }  
  96.   
  97.     //游客登录  
  98.     public void visitorLogin(View view) {  
  99.   
  100.         Intent intent = new Intent();  
  101.         intent.setClass(LoginActivity.this, MainActivity.class);  
  102.         startActivity(intent);  
  103.     }  
  104.   
  105.     /** 
  106.      * 验证用户名密码是否正确 
  107.      *  
  108.      * @param username 
  109.      * @param password 
  110.      * @return 
  111.      */  
  112.     public boolean validateUser(String username, String password) {  
  113.   
  114.         Boolean flag = false;  
  115.         try {  
  116.             //...此处为调用web服务,验证用户名密码的服务,特此省略  
  117.             flag = true;  
  118.         } catch (Exception e) {  
  119.             // TODO Auto-generated catch block  
  120.             Log.e(TAG, e.getMessage());  
  121.             message = "连接服务器失败";  
  122.         }  
  123.   
  124.         return flag;  
  125.     }  
  126.   
  127.     /** 
  128.      * 点击退出按钮时触发的方法 
  129.      */  
  130.     public void logout_listener(View view) {  
  131.         dialog_Exit(this);  
  132.     }  
  133.   
  134.     /** 
  135.      * 监听返回按钮,此为登录界面再返回的话给出退出提示 
  136.      */  
  137.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  138.         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {  
  139.             dialog_Exit(this);  
  140.             return false;  
  141.         }  
  142.         return false;  
  143.     }  
  144. }  


页面布局截图:

生成的配置文件位置和代码

userInfo.xml的具体代码如下:

[html]  view plain copy
  1. <?xml version='1.0' encoding='utf-8' standalone='yes' ?>  
  2. <map>  
  3. <string name="userName">777</string>  
  4. <string name="password">111111</string>  
  5. <boolean name="AUTO_ISCHECK" value="true" />  
  6. </map>  
Android 记住密码和自动登录界面的实现 Android 记住密码和自动登录界面的实现(SharedPreferences 的用法) 立即下载

相关推荐

Android客户端自动保存账号密码和自动登入源码

Android客户端自动保存账号密码和自动登入源码;绝对有用,本人自己写的,绝对通的过。不能通过退分。支持android4.2版本。

android保存登录用户名和密码错误,android开发用户名密码如何记住

在安卓开发中,我们做用户登录的时候需要将用户名和密码保存,下次打开的时候记住应户名和密码,也就是记住用户名和密码。关于记住用户名和密码的保存方式有多种,这里介绍SharaedPreferenses保存方式。这种保存方式主要是以XML的格式来保存文件的,在开发中的explorer中可以看见。下面看一个小例子,主要是代码,希望对开发者有所帮助:实现的主要代码:private EditText user...

weixin_29091445的博客 560

Android 实现保存密码和自动登录功能

主要实现了自动登录和保存密码的功能, Please take your advice

关于Android官方开发教程中EditText editText = (EditText) findViewById(R.id.editText);报错的解决办法

关于Android官方开发教程中EditText editText = (EditText) findViewById(R.id.editText);报错的解决办法 遇到的问题和困惑 作为一名android初学者,在按照Android官方开发教程,一步一下学习的时候,发现在完全按照教程中的步骤一步步进行操作之后,有一个地方报错了,如图1所示: 花了半个小时输入代码,最后却不能编译,按照教程所讲,把鼠标移到editText上面,出现以下提示(图2): 再按教程:同时按Alt + Shift + Enter

Cybers的博客 3657

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

最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现。 SharedPreferences简介 SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。 SharedPreferences使用实例:记住用户名密码自动登录 大致了解了SharedPre

Android实现带有记住密码功能的登陆界面

本文实例为大家分享了Android带有记住密码功能的登陆界面实现代码,供大家参考,具体内容如下 1、设计思路 主要采用SharedPreferences来保存用户数据,本Demo没有经过加密,所有一旦Android系统被ROOT的话,其他用户就可以查看用户的私有目录,密码文件就很不安全。所以真正应用在软件上面的,一定要经过加密才保存,可以选择MD5加密。 SharedPreferences介绍可以参看这篇博文://www.jb51.net/article/84859.htm TextWatcher的介绍可以参看这篇博文://www.jb51.net/article/84865.htm  2、功

Android—Android中监听EditText文本输入,实现修改用户名,清除密码

/**  * 登录界面  */ public class Login extends Activity implements OnClickListener { private Button btn_login; private EditText et_username; private EditText et_userpwd; @Override protected void

weiguishan的专栏 3446

2-6-1-1 QNX编程入门之进程和线程(一)

文章围绕进程和线程展开介绍。先是将进程类比为房子,线程类比为居住者,阐述其基本概念,如进程占用内存,线程可共享内存。接着讲解同步相关内容,介绍了互斥,线程通过互斥锁来控制对特定资源的访问,像使用浴室一样。还提到优先级,线程按优先级和等待时长来决定获取资源顺序。此外,说明了信号量,以厨房为例,区分计数为 1 和大于 1 的信号情况,且指出信号量可当互斥锁用,但互斥锁是特殊用途信号量,二者存在区别,最后提及后续会介绍其他同步机制。

星原飞火的博客 1323

【Android自动登录】SharedPreferences实现记录账号密码,自动填入进行登录

Android利用SharedPreferences以键值对的方式存储账号密码,并在应用打开时读取实现自动登录

纷飞的霜 3398

解密美团外卖API:mtgsig和waimai_sign参数生成原理与Python实现

本文深入解析了美团外卖API中核心风控参数mtgsig和waimai_sign的生成原理与实现方法。文章详细拆解了waimai_sign作为业务数据签名、mtgsig作为请求环境签名的不同角色与生成逻辑,并通过Python代码示例演示了如何通过逆向工程、Frida动态Hook等技术手段模拟签名生成过程,为开发者理解移动端API安全机制提供了实战参考。

weixin_29325515的博客 552

【技术解析】Point-NeRF:如何通过点云优化加速神经辐射场渲染

本文深入解析了Point-NeRF技术,它通过引入3D点云作为几何先验,有效解决了传统神经辐射场渲染速度慢的痛点。该方法利用神经点云构建局部辐射场,结合点剪枝与生长策略进行动态优化,在保证高渲染质量的同时,实现了高达30倍的训练加速,为高效3D场景重建提供了新范式。

weixin_29159127的博客 268

登录界面的记住密码和密码的隐藏、显示

登录界面的记住密码功能先上布局代码:&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"&gt...

HyYyrWang的博客 2327

C++游戏开发入门:从环境配置到第一个完整项目

C++ 作为游戏开发领域的关键语言,其学习路径常因语法枯燥而令初学者却步。以项目驱动的方式学编程,能帮助学习者将变量、循环、函数、指针等基础概念融入实际游戏逻辑中,获得即时反馈与完整项目经验。掌握合适的开发环境是高效实践的前提,例如在 Windows 下使用 VS Code 搭配 MinGW-w64 编译器,配合调试器与构建脚本,即可搭建轻量可扩展的 C++ 游戏开发工作流。此类课程通常面向无基础人群,从控制台小游戏逐步过渡到带游戏循环的完整作品,过程中还需关注性能观察、素材授权与版本管理。无论你是刚接触编

weixin_30621959的博客 541

Python自动登录QQ

Python自动登录QQ 这是一份来自网络的代码,经过了我的修改和验证。 首先我的运行环境是Python3.7,需要安装PyUserInput库。 直接上代码吧: #!/usr/bin/python import os import time import win32gui import win32api import win32con import pymouse,pykeyboard fro...

sessos的博客 1万+

ROS相机内参标定详细步骤指南

相机标定的目的是为了确定相机内部参数和外部参数,以便修正图像并将图像坐标映射到世界坐标,或者从世界坐标映射到图像坐标。这个过程是计算机视觉和三维感知任务的关键步骤之一,它有以下主要目的: 1. **减小畸变**:相机镜头和传感器可能引入径向和切向畸变,使得图像中的直线变得弯曲或者物体的形状不准确。通过标定相机,可以矫正这些畸变,使图像更准确。

m0_56661101的博客 1万+

基于Pycatia的智能孔特征识别技术:无参模型圆心自动化提取方案

基于Pycatia的智能孔特征识别技术:无参模型圆心自动化提取方案

KE17RS的博客 2877

如何实现网页的自动登录

了解cookie 我们在浏览器进行操作的时候,有时候会在我们的浏览器中留下cookie数据,他不同于session域对象,cookie对象有这自己的生命周期,只要生命周期还在,那么cookie就不会消失,具体session和cookie的不同: 1)存储的位置不同 Cookie存储在浏览器端 Session存储在服务器端:session携带cookie名称jsessionid存在浏览器端存的 2)存储数据类型不一样 Cooike的构造方法: public Cooike(String name,String

bxq2195294335的博客 7766

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(17-32)

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(17-32)

weixin_45735391的博客 12万+

java 自动登录_java实现用户自动登录

自动登录,是为了帮助用户多次使用这个网页时,不用再次输入用户名和密码就可以登录。自动登录是指用户将用户的登录信息,人,保存到本地的文件中Cookie中。Name,value -声明时 new Cookie(key,value);Path-默认值,即为当前保存cookie的这个serlvet所在的路径。如果Cookie在这样的路径:http://loclhost:8080/project/abc/A...

weixin_30609253的博客 1201

PyTorch 面试题及参考答案(精选100道)

模块是 PyTorch 中用于自动求导的核心模块。它为张量上的所有操作提供了自动求导的功能。在深度学习中,反向传播是一种用于计算损失函数相对于模型参数的梯度的算法。通过梯度,我们可以使用优化算法(如随机梯度下降)来更新模型的参数,从而最小化损失函数。模块的主要作用就是自动计算这些梯度。当我们创建一个张量时,如果将其属性设置为True,那么 PyTorch 会跟踪该张量上的所有操作。在完成前向传播计算出损失函数后,调用方法,模块会自动根据链式法则反向传播计算出所有需要求导的张量的梯度。

大模型大数据攻城狮的专栏 1681

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Windows开机自动登录及取消自动登录的设置

Win10、Win7、WinXP如何开机自动登录?如何取消开机自动登录? 开机自动登录 开始菜单搜索框输入“netplwiz”按回车 或“Win+R”组合键打开“运行”框内输入“netplwiz” 或“运行”框内输入“control userpasswords2”(注意l与u之间空格) 或“运行”框内输入“rundll32 netplwiz.dll,UsersRunDll”(注意大小...

张彤的专栏 5727

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【JavaWeb】案例:用户登录、用户自动登录

案例:用户登录、用户自动登录

少年你真的要止步于此嘛。 3004

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Cookies实现的自动登录

自动登录 自动登录的机制就是如同我右边写的那样,很简单的一个设定 下面看代码讲解 login.jsp &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &lt;title&gt;Insert title here&lt;/title&

时间ヾ永恒的博客 1376

java 实现自动登录_java实现用户自动登录

自动登录,是为了帮助用户多次使用这个网页时,不用再次输入用户名和密码就可以登录。自动登录是指用户将用户的登录信息,人,保存到本地的文件中cookie中。name,value -声明时 new cookie(key,value);path-默认值,即为当前保存cookie的这个serlvet所在的路径。如果cookie在这样的路径:http://loclhost:8080/project/abc/a...

weixin_39734020的博客 1096

python实现自动登录网页版_Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。一、确认软件版本首先我们需要确认我们所使用的谷歌浏览器版本,这里测试的谷歌浏览器版本为(版本 67.0.3396.87(正式版本) (64 位)),点击设置—关于Chrome,则可以看到 我们进入Chromedriver 的官网下载页...

weixin_31260665的博客 5209

Druid 如何自动登录

Druid 如何自动登录 首先说明一下,为什么要自动登录 必须要有密码,否则别人直接访问项目地址+"/druid"就可以访问,不安全; 不想有二次登录(不解释); 实现思路 菜单配置路径 toDruid; 跳转页面后,ajax触发 doDruid.json 请求; 后台编写Filter,...

chiquanmo0842的博客 3608
上一篇: 自定义对话框
下一篇: 输入框弹出的时候内容上移动
小人物2014
博客等级 码龄19年 66粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值