# Login **Repository Path**: cucker/login ## Basic Information - **Project Name**: Login - **Description**: 实现一个支持双语(中文和应为)的登录界面,如下图,并管理安全问题和错误尝试。 - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-25 - **Last Updated**: 2025-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Login 登录系统 ## 系统要求 实现一个支持双语(中文和应为)的登录界面,如下图,并管理安全问题和错误尝试。 ## 编程要求 1. 定义两个 TextView 询问用户的用户名和密码。密码 EditText 必须 inputType 设置为 textPassword。 2. 响应登录按钮的点击事件,使用 gettext() 等到用户名和密码,文本使用 toString() 方法,并用 equals() 函数进行匹配。 ```java if (username.getText().toString.equals("admin") && password.getText().toString().equals("admin")) { // correct password 可以用对话框进行信息提示 } else { // wrong password 可以用对话框进行信息提示 } ``` 3. 提供一种安全机制,避免不必要的尝试。对于初始化一个变量,每个失败的尝试,它递减。而且,当它到达 0 时,禁止登陆按钮。 ```java int counter = 3; counter--; if (counter == 0) { // disable the button, close the application etc. } ``` 4. 响应退出退出按钮的点击事件,关闭应用 ``` System.exit(0); ``` 5. 创建两个用于国际化的文件(中文和英文) strings.xml,定义必要的字符串。 ## 提交作业的内容 * 系统实现的主要界面和功能实现说明 * 界面设计和核心功能的主要代码。 * 实验过程产生的主要问题及解决方法。 ## 考核标准 1. 完成登录功能 --60-70分。 2. 完成双语(中文和英文)的登录界面--70-80分。 3. 完成管理安全问题和错误尝试,优化界面设计--80-100分。 ## 项目代码目录结构 ![](./image/code_dir_str.png) ## 已经实现的功能 * 模拟用户登录功能。 * 使用 HaspMap 保存用户信息,包括用户名、密码、头像。 * 国际化语言,支持简体中文、英语。 * 用户登录成功后,跳转到 用户中心。 * 尝试登录失败次数限制为 3 次,次数用完后,限制30秒内不允许登录,并弹出倒计时提示。 ## APP界面效果 * 英文界面 ![](./image/login1.1.png) ![](./image/login1.2.png) ![](./image/login1.3.png) * 中文界面 ![](./image/login2.1.png) ![](./image/login2.2.png) * 尝试多次登录限制, 30秒倒计时后“登录按钮”恢复可用 ![](./image/login_failed01.png) ![](./image/login_failed02.png) ![](./image/login_failed03.png) ![](./image/login_failed04.png)