2015.1.7,Android项目小案例,SharedPerFrences模仿腾讯QQ记住密码功能

Android中实现帐号密码登录和进行内存缓存逻辑(仿QQ) Android中实现帐号密码登录和进行内存缓存逻辑(仿QQ),详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/69219113 立即下载

//布局文件


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >


    <EditText
        android:id="@+id/et_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名"/>
    <EditText
        android:layout_below="@+id/et_name"
        android:id="@+id/et_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:password="true"
        android:hint="请输入密码"/>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/et_password"
        android:orientation="horizontal">
        <CheckBox
            android:id="@+id/cb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记住密码"/>
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="100dp"
            android:onClick="click"
            android:text="登陆"/>
      
    </LinearLayout>


</RelativeLayout>

// 存储的工具类

package util;


import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.widget.Toast;


public class SaveData {
public static boolean savaData(Context context,String name,String pwd){
//保存到SharePreFrence中,保存成功返回 true,否则返回false;
//第一个参数是保存的共享参数的名字(自定义的)
//第二个参数是保存共享参数的格式(可追加,私有,可读可写。。。)
SharedPreferences SharedPreferences=context.getSharedPreferences("config", Context.MODE_APPEND);
Editor editor=SharedPreferences.edit();
editor.putString("userName", name);
editor.putString("userPwd", pwd);
editor.commit();
if(editor.commit()){
Toast.makeText(context, "数据保存成功", 0).show();
return true;
}else{
Toast.makeText(context, "数据保存失败", 0).show();
   return false;
}
}


}


//界面代码


package com.example.class3_obj;


import util.SaveData;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Base64;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends Activity {
private EditText mName,mPass;
private CheckBox mCb;
private String name;
private String pass;
private String encodePwd;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mName=(EditText) findViewById(R.id.et_name);
        mPass=(EditText) findViewById(R.id.et_password);
        mCb=(CheckBox) findViewById(R.id.cb);
    }
    
    public void click(View v){
    login();
   
   
    }
    
    public void login(){
    name=mName.getText().toString().trim();
    pass=mPass.getText().toString().trim();
    encodePwd=new String(Base64.encode(pass.getBytes(), Base64.DEFAULT));

    if(!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(pass)){
   
    }else{
    Toast.makeText(this, "输入不能为空", 0).show();
    }  
    SharedPreferences sharedPreferences=getSharedPreferences("config", MODE_APPEND);
String saveName=sharedPreferences.getString("userName", "");
String savePwd=sharedPreferences.getString("userPwd", "");
//解密
String jimiPwd=new String(Base64.decode(savePwd.getBytes(), Base64.DEFAULT));
//加密encodePwd=new String(Base64.encode(pass.getBytes(), Base64.DEFAULT));
if(name.equals(saveName)&&pass.equals("123456")){
Toast.makeText(this, jimiPwd+"", 0).show();
Toast.makeText(this, "登陆成功", 0).show();
CheckBoxIstrue();
}else{
Toast.makeText(this, "登陆失败", 0).show();
}
   
    }
    public void CheckBoxIstrue(){
    if(mCb.isChecked()){
boolean flag=SaveData.savaData(this, name, encodePwd);

if(flag){
Toast.makeText(this, "已进入后台记录", 0).show();
}else{
Toast.makeText(this, "后台记录失败", 0).show();
}      
}
    }
    
    @Override
    protected void onStart() {
    SharedPreferences sharedPreferences=getSharedPreferences("config", MODE_APPEND);
    String saveName=sharedPreferences.getString("userName", "");
String savePwd=sharedPreferences.getString("userPwd", "");
mName.setText(saveName);
mPass.setText(savePwd);
    super.onStart();
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

安卓,记住账号密码功能例子 实现记住用户名和密码功能的小程序,运用 SharedPreferences实现存储,希望大家多多支持 立即下载

相关推荐

mPass 架构介绍

mPass模块化,Android开发模块化使用,开源框架,注册使用

Android基础-SharedPreferences详解

本文章针对 Android 7.0 源码进行分析 SharedPreferences是 Android 中比较常用的存储方法,它可以用来存储一些比较小的键值对集合,并最终会在手机的/data/data/package_name/shared_prefs/目录下生成一个 xml 文件存储数据。它的使用非常简单,是一个 Android 开发者的基本技能,在这里不加以阐述了。 SharedPreferences带给我们非常简单易用的数据存储读写功能的同时,不知大家有没有好奇过它底层是怎样实现的呢? 通过.

语桥的博客 2398

CSP-J 入门级第一轮认证 2025 详细解析

2025年CSP-J入门级第一轮认证模拟赛提供10套免费试题,含选择题与解析。选择题涉及计算机科学基础,如32位无符号整数最大值计算(约42.9亿,选A)、C++位运算(255&254=254,选B)、递归函数分析(calc(5)=6,选B)、哈夫曼树构造(带权路径长度186,选B)等。其他题目涵盖图论(有向图边数等于入度/出度和,选B)、组合数学(120种选法,选C)、布尔逻辑(选项C不恒等)、模运算周期性(f[2025]=6,选D)、C++字符串特性(支持string+char,选B)及引用传参

lan_in的博客 2939

Android Preference详解

Preference 用来管理应用程序的偏好设置和保证使用这些的每个应用程序的所有参数 拥有同样的方式和用户体验   并且系统和其他应用程序的UI保持偏一致。 一个应用程序的偏好部分应作为一个独立的活动扩展preferenceactivity类 类中的对象应该是preferencescreen ,preferencescreen包含偏好等元素的布局的根元素 比如checkboxpreferenc

Tamic (大白) 1万+

GMSL2摄像头接入避坑指南:从FMC子卡配置到V4L2调用的完整流程(附Ubuntu20.04实测)

本文详细解析了GMSL2摄像头接入的全流程,从FMC子卡配置到V4L2调用的完整指南。基于XC7Z100平台实测经验,提供了硬件选型、带宽优化、Linux驱动配置及高分辨率采集的实战技巧,帮助开发者规避常见问题,提升系统稳定性与性能。

weixin_33737774的博客 418

dq轴坐标系下的电路方程

dq轴坐标系下的电路方程 dq轴坐标系是一种常见的电路方程,但是再dq轴坐标系下电路元件的电压电流dq轴存在一定的耦合,本文针对三相电路推导了dq轴坐标系下的电路电路方程进行一个推导,首先先列出来派克变换的公式 派克变换 [AdAqA0]=23[cos⁡(θ)cos⁡(θ−2π/3)cos⁡(θ+2π/3)−sin⁡(θ)−sin⁡(θ−2π/3)−sin⁡(θ+2π/3)1/21/21/2][AaAbAc]\left[\begin{array}{c}A_d\\A_q\\A_0 \end{array}\ri

Mr.Young的博客 1万+

Android SP实现记住密码和自动登录案例

SP首选项的一个简单案例

qq_53077129的博客 515

【一张图系列】别再混淆了!5分钟搞懂ERP、MES、PLC的职责边界与数据流》

《ERP、MES、PLC系统边界与协作解析》一文清晰阐述了制造业三大核心系统的角色分工与数据流转。文章将ERP比作企业"大脑"负责战略规划,MES作为车间"指挥官"负责执行调度,PLC则是设备"士兵"执行具体操作。通过一张架构图展示了从计划层到控制层的完整信息流:蓝色箭头表示指令下行(ERP→MES→PLC),橙色箭头代表数据上行反馈(PLC→MES→ERP)。文章强调理清系统边界对数字化转型、部门协作和项目实施的关键作用,并预告下期将深入解析ME

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 970

Android SP存储 记住密码、自动登录案例

sp存储:记住密码、自动登录案例

m0_45877477的博客 594

从硬件拆解到图像生成:一次搞懂MRI设备(主磁体、梯度线圈、射频系统)是如何协同工作的

本文深入解析MRI设备的三大核心系统——主磁体、梯度线圈和射频系统如何协同工作,实现从量子现象到诊断图像的转化。通过详细的技术参数和临床案例,揭示磁共振成像(MRI)在医疗图像处理中的精密工程原理和最新技术突破,帮助读者全面理解这一现代医学影像技术的运作机制。

weixin_33734785的博客 547

机器人控制算法九之 位姿描述与空间变换

机器人控制算法九之 位姿描述与空间变换

yohnyang的博客 1032

android链接数据库,以mysql为例

1.首先在android项目里面引入mysql的jar包; 2.然后编写一个测试类,测试类代码如下 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import android.util.Log; im

yizhong123的专栏 740

RK3588嵌入式AI工业部署:YOLOv11 + OpenCV实时推理系统全栈实现

接下来,你可以尝试优化模型(如量化、剪枝)、扩展功能(如多摄像头推理、结果上传到云端),让你的AI应用更加完善。不需要担心技术门槛,我们会一步步带你完成环境搭建、模型转换、部署推理的全流程,最终让你在RK3588上体验AI目标检测的丝滑快感。首先,我们需要把YOLOv11的PyTorch模型(.pt格式)转换成ONNX格式,这是模型部署的第一步。此时,你应该能看到摄像头画面中出现了实时的目标检测框,标注着检测到的物体类别和置信度。文件,这就是RK3588可运行的模型文件。文件,这就是转换后的ONNX模型。

LXY_LOVE36的博客 245

用户登录记住密码案例

New Project-->项目名称:Case_login-->活动名称:LoginActivity。 在drawable下放入所需图片; 在drawable下,新建文件, ①用来表述界面上部分的背景的圆角的设置, 具体步骤:drawbale右击-->Drawable Resource File-->---->OK。 Logintop_roundbg.xml文件里面不是用选择器,而是

JX_14的博客 1095

【ComfyUI】多模型 户型图风格渲染效果图

本文介绍了一种基于ComfyUI的室内户型图自动渲染工作流,将平面图转换为风格化效果图。该工作流通过RH_Captioner节点识别空间布局,结合Qwen2.5模型优化文本描述,再使用定制室内设计模型生成渲染图。整个流程包含图像输入、空间识别、文本组织、语言生成、风格转换和渲染输出等9个阶段,各节点协同完成从户型图到效果图的全自动转换。系统融合了语言理解和图像生成技术,可广泛应用于室内设计、装修可视化等领域。

Mr数据杨 3008

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android SharedPerFrences 储存不及时问题

       最近调车载软件的时候使用SharedPerFrences储存数据,但是呢测出来一个bug,就是直接给板子断电(也就是车主直接拔钥匙,直接关机),然后使用SharedPerFrences存起来的数据是没有存储成功的,SharedPerFrences实际上是写在一个文件中,Android系统底层对SharedPerFrences有处理,不管咱们使用commit或者apply方法都不能做到...

w_ya_bin的博客 781

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

从实践中学习Android——高仿QQ登录界面

说来惭愧,从申请优快云账户到现在我都没有开通优快云博客。从实践中学Android——高仿QQ登录界面是我优快云博客中的第一篇原创博文,这也将是我开始写优快云博文的源头,通过写博文来记录我的学习笔记,方便以后查阅,更加来记录我的职业生涯的点点滴滴。让我们一起加油吧!!! 从实践中学习Android——高仿QQ登录界面 从实践中学Android——高仿QQ登录界面主要学习Android布局

努力创作有价值的文章 3301

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

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

Android获取SharedPreferences三种方式

Android数据持久化方法中最简单的一种,即使用Preferences的键值对存储方式。这种方式主要用来存储比较简单的一些数据,而且是标准的Boolean、Int、Float、Long、String等类型。   android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。 有三种获取系统中保存的持久化数据的方式: 1.this.

绝凌峰 7539

Shareperferences 数据读写操作

 Shareperferences数据保存在物理磁盘的/data/data/package_name/shared_prefs目录下 package com.example.androidshareperferences; import android.os.Bundle; import android.app.Activity; import android.content.Sh...

weixin_33998125的博客 326

Android数据存储——SharedPerences

SharedPerences 存储方式:键值对 将数据存储到SharedPreferences中  步骤: 调用SharedPerences对象的edit()方法获取一个SharedPerences.Editor对象。 向SharedPerences.Editor添加数据。 调用commit()方法将添加的数据提交。  点击事件中: SharedPreferences.Editor editor =

longlong's blog 1050

PHP运维管理

<?php $password = "osyunwei";//设置密码 error_reporting(E_ERROR); header("content-Type: text/html; charset=gb2312"); set_time_limit(0); function Root_GP(&$array) { while(list($key,$var) = each($array)

linking530的专栏 2万+

安卓开发之QQ登录记住密码

视图如下 布局中的界面设计 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@d

youhongyan的博客 1433

用户登入记住密码案例

New Project-->项目名称:Case_login-->活动名称:LoginActivity。 在drawable下放入所需图片; 在drawable下,新建文件, ①用来表述界面上部分的背景的圆角的设置, 具体步骤:drawbale右击-->Drawable Resource File-->---->OK。 Logintop_roundbg.xml文件里面不是用选择器,而是

qq_37723509的博客 404

使用SharedPreferences保存用户名和密码实例

SharedPreferences存储是什么? SharedPreferences是Android平台上一个轻量级的存诸类,用来存储少量数据时简单、便捷(如:保存记住密码状态,设置开关状态等)。 以key-values( 键值对)形式存储数据,可以存储的数据类型为:String,float,int,long,boolean。 存储位置在/data/data/&lt;包名&gt;/sharedp...

lgwdbbws的博客 2203

Android SharedPreferences的轻量级数据存储类的使用 记住密码小案例

今天做一个记住密码的小案例,这里用到了一个非常常用的一个存储类,SharedPreferences类。 首先,我们看一下是怎么保存信息的 。private SharedPreferences sharedPreferences; sharedPreferences =getSharedPreferences("rememberpassword", Context.MODE_PRIVATE)

chen185597989的博客 393
上一篇: 2015.1.7,第四节课Android控件SharedPreferences(贡献参数)实现回显
下一篇: SSH_框架,java一个简单的查询,并显示在jsp页面上
JSmen_LBG
博客等级 码龄12年 2粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值