Android登陆界面用户名检测功能

发布时间 - 2026-01-10 23:25:04    点击率:

今天分享一下登陆界面用户登录名的检测,大家都知道如果在服务器端进行所有用户名的检测是比较浪费资源的。用户每点击一次登陆就要发到服务端去检测,对于服务端来说负荷是比较大的。所以呢在客服端对用户的非法信息进行简单的过滤是非常有必要的。

源码下载:Android用户名检测

首先看一下效果:

 

当用户输入的用户名长度小于3,或者大于9时将出现红色提示,并且登陆按钮不可点击。

当输入的用户名大在合法区间则提示消失,如果密码不为空则登陆按钮可点击
虽然功能很小却用到了不少的东西:

  • EditText失去焦点事件的监听
  • 获取输入的字符并且检测长度
  • 当用户名不合法时出现提示
  • 设置登录按钮的不可点击

接下来看一下源码,为了是登陆界面更加美观,我对登陆控件进行了圆形化处理,也就是开源醒目CircleImageView 项目主页地址:https://github.com/hdodenhof/CircleImageView:

<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"
 android:background="@color/colorLogin"

 >

 <!-- Login progress -->
 <ProgressBar
 android:id="@+id/login_progress"
 style="?android:attr/progressBarStyleLarge"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginBottom="8dp"
 android:visibility="gone" />
 <RelativeLayout
 android:layout_width="match_parent"
 android:layout_height="180dp"

 android:id="@+id/head_img"
 >

 <de.hdodenhof.circleimageview.CircleImageView
  android:layout_width="80dp"
  android:layout_height="80dp"
  android:src="@mipmap/nav_head"
  android:layout_alignParentBottom="true"
  android:layout_centerHorizontal="true"
  android:layout_marginBottom="25dp" />
 </RelativeLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:paddingBottom="20dp"
 android:orientation="vertical">
 <EditText
  android:id="@+id/et_user"
  android:layout_width="match_parent"
  android:layout_height="60dp"
  android:hint="@string/userName"
  android:background="@color/colorLoginForm"
  android:layout_marginBottom="5dp"
  />
 <TextView
  android:id="@+id/tv_tip"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textColor="@color/error"
  />
 <EditText
  android:id="@+id/et_pass"
  android:layout_width="match_parent"
  android:layout_height="60dp"
  android:background="@color/colorLoginForm"
  android:hint="@string/passWord"
  android:paddingTop="1dp"
  />
 </LinearLayout>
 <Button
 android:id="@+id/button"
 android:layout_width="match_parent"
 android:layout_height="50dp"
 android:background="@color/loginButton"
 android:text="@string/loginButton"
 android:textColor="@color/colorLoginForm"
 />

</LinearLayout>

然后修改MainAvtivity.class:

public class MainActivity extends AppCompatActivity {
 EditText etUser;
 EditText etPassWord;
 TextView tvTip;
 Button button;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 //初始化View控件
 findView();
 //用于检测输入的用户名操作
 checkLength();
 }

 private void checkLength() {
 //为etUser设置焦点改变监听事件
 etUser.setOnFocusChangeListener(new View.OnFocusChangeListener(){
  @Override
  public void onFocusChange(View v, boolean hasFocus) {
  //如果失去焦点则进行用户名的检测
  if(etUser.hasFocus()==false){
   //如果用户名长度小于3或者大于9,则提示用户名错误且登陆不可点击
   if(etUser.getText().toString().length()>9||etUser.getText().toString().length()<3){
   tvTip.setText("用户名不合法!");
   button.setClickable(false);
   }else{
   //如果用户名合法且密码不为空,设置提示字体消失按钮可点击
   if(etPassWord.getText().toString()!=""){
   button.setClickable(true);
   tvTip.setText("");
   }
  }
  }


  }
 });
 }

 private void findView() {
 etUser= (EditText) findViewById(R.id.et_user);
 etPassWord= (EditText) findViewById(R.id.et_pass);
 tvTip= (TextView) findViewById(R.id.tv_tip);
 button= (Button) findViewById(R.id.button);
 }
}

整个代码的核心是编辑框的焦点改变的监听,然后对用户名进行判断。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android用户名检测  # Android登陆界面用户名检测  # Android登陆用户名检测  # Android开发中实现用户注册和登陆的代码实例分享  # Android实现带有记住密码功能的登陆界面  # Android如何通过手机获取验证码来完成注册功能  # Android设计登录界面、找回密码、注册功能  # Android登录注册功能 数据库SQLite验证  # Android实现登录注册功能封装  # Android实现简易登陆注册逻辑的实例代码  # 看一下  # 服务端  # 为空  # 不合法  # 登陆界面  # 大家都  # 客服  # 我对  # 比较大  # 开源  # 时将  # 登录名  # 大家多多  # 进行了  # 源码下载  # 主页地址  # 却用  # tools  # http  # schemas 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel安装步骤详细教程_Laravel环境搭建指南  如何在七牛云存储上搭建网站并设置自定义域名?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel如何实现文件上传和存储?(本地与S3配置)  ,怎么在广州志愿者网站注册?  php485函数参数是什么意思_php485各参数详细说明【介绍】  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  如何实现建站之星域名转发设置?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel如何使用Blade组件和插槽?(Component代码示例)  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  JS去除重复并统计数量的实现方法  动图在线制作网站有哪些,滑动动图图集怎么做?  魔方云NAT建站如何实现端口转发?  免费网站制作appp,免费制作app哪个平台好?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  长沙企业网站制作哪家好,长沙水业集团官方网站?  iOS UIView常见属性方法小结  如何获取PHP WAP自助建站系统源码?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  JS弹性运动实现方法分析  如何在VPS电脑上快速搭建网站?  如何为不同团队 ID 动态生成多个非值班状态按钮  C++时间戳转换成日期时间的步骤和示例代码  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel如何实现数据库事务?(DB Facade示例)  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  如何在IIS中新建站点并解决端口绑定冲突?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  如何用搬瓦工VPS快速搭建个人网站?  jQuery中的100个技巧汇总  智能起名网站制作软件有哪些,制作logo的软件?  如何在服务器上配置二级域名建站?  HTML 中动态设置元素 name 属性的正确语法详解  Laravel如何处理异常和错误?(Handler示例)  js实现点击每个li节点,都弹出其文本值及修改  实例解析Array和String方法  再谈Python中的字符串与字符编码(推荐)  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何有效防御Web建站篡改攻击?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解