记住密码(Android登录界面)

2024-06-03 00:08

本文主要是介绍记住密码(Android登录界面),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在编写安卓登录界面时,我们如何记住密码,方便下一次登录呢?

首先,先创建一个安卓项目(我的版本是4.4.2的),名字为"记住密码"

然后在res文件夹下找到layout文件夹,找到activity_main.xml或fragment_main.xml,在里面输入或拖拽按钮

<LinearLayout 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"android:orientation="vertical"tools:context="com.csdn.www.MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户名" /><EditTextandroid:id="@+id/username"android:layout_width="fill_parent"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/textView2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="密码" /><EditTextandroid:id="@+id/userpass"android:layout_width="fill_parent"android:layout_height="wrap_content"android:inputType="textPassword"android:password="true" /><RelativeLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content" ><Buttonandroid:id="@+id/login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignParentTop="true"android:layout_marginRight="73dp"android:text="登陆" /><CheckBoxandroid:id="@+id/checkBox1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:checked="true"android:text="记住密码" /></RelativeLayout></LinearLayout>

视图效果:

在src下的java文件里创建一个SaveFile.java类,旨在记住密码之后如何保存用户名、密码和获取保存数据

package com.csdn.www;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;import android.content.Context;public class SaveFile {public static boolean save(Context context,String name,String pass){try {//File f=new File("/data/data/com/csdn/www/info.txt");File f=new File(context.getFilesDir(),"info.txt");//context.getFilesDir();//返回一个目录  /data/data/包名/filesFileOutputStream fos=new FileOutputStream(f);fos.write((name+"=="+pass).getBytes());fos.close();return true;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return false;}}/*** 获取保存的数据* @param context* @return*/public static Map<String,String> getSaveFiles(Context context){File f=new File(context.getFilesDir(),"info.txt");try {FileInputStream fis=new FileInputStream(f);BufferedReader br=new BufferedReader(new InputStreamReader(fis));String str=br.readLine();String[] infos=str.split("==");Map<String,String> map=new HashMap<String,String>();map.put("username", infos[0]);map.put("userpass", infos[1]);return map;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}
}

最后在src下的java文件里MainActivity.java

package com.csdn.www;import java.util.Map;import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends ActionBarActivity {private static final String TAG = "MainActivity";private EditText username, userpass;private CheckBox checkBox1;private Button login;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fragment_main);username = (EditText) this.findViewById(R.id.username);userpass = (EditText) this.findViewById(R.id.userpass);checkBox1 = (CheckBox) this.findViewById(R.id.checkBox1);Map<String, String> map=SaveFile.getSaveFiles(this);if(map!=null){username.setText(map.get("username"));userpass.setText(map.get("userpass"));}login = (Button) findViewById(R.id.login);login.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String un = username.getText().toString().trim();String up = userpass.getText().toString().trim();if (TextUtils.isEmpty(un) || TextUtils.isEmpty(up)) {Toast.makeText(MainActivity.this, "用户名或密码不能为空",Toast.LENGTH_SHORT).show();} else {// 登陆//是否保存密码if (checkBox1.isChecked()) {// 保存用户名和密码Log.i(TAG, "需要保存用户名密码");boolean flag=SaveFile.save(MainActivity.this,un, up);if(flag){Toast.makeText(MainActivity.this, "信息保存成功", 0).show();}}// 登陆发送消息到服务器,服务器验证是否正确if ("zhangsan".equals(un) && "123".equals(up)) {Toast.makeText(MainActivity.this, "登陆成功",Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "用户名或密码错误",Toast.LENGTH_SHORT).show();}}}});}@Overridepublic 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;}}


会显示“信息保存成功”,“用户名或密码错误”

在Eclipse中的”File Explorer“里,目录”data/data/com/csdn/www/info.txt“,用户名和密码会保存在info.txt里


这篇关于记住密码(Android登录界面)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025478

相关文章

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

PostgreSQL数据库密码被遗忘时的操作步骤

《PostgreSQL数据库密码被遗忘时的操作步骤》密码遗忘是常见的用户问题,因此提供一种安全的遗忘密码找回机制是十分必要的,:本文主要介绍PostgreSQL数据库密码被遗忘时的操作步骤的相关资... 目录前言一、背景知识二、Windows环境下的解决步骤1. 找到PostgreSQL安装目录2. 修改p

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结