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

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

源码下载: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); } }

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

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

时间: 2025-01-02 15:14:20

Android登陆界面用户名检测功能的相关文章

Android登陆界面实现清除输入框内容和震动效果_Android

本文为大家分享Android登陆界面实现清除输入框内容和震动效果的全部代码,具体内容如下: 效果图: 主要代码如下 自定义的一个EditText,用于实现有文字的时候显示可以清楚的按钮: import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Editable; import android.text.TextWatcher; import android.uti

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

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

android开发-怎么实现这个功能a?求思路

问题描述 怎么实现这个功能a?求思路 开发一个应用,开始界面是账号登陆界面.实现功能手机A能登陆已经注册的账号手机B也能登陆...就是不同的手机都可以根据注册的账号进行的登陆.求开发思路 解决方案 这个不需要思路,就是最简单的web api应该实现的功能,任何最基本的例子程序都有,随便找一个参考下. 解决方案二: 将登陆的逻辑代码放在后台服务器,然后app用户登录时请求后台服务器即可

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

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

保存数据-android注册界面的功能实现

问题描述 android注册界面的功能实现 有一个注册界面,有四个可填项: 用户名,密码,确认密码,手机号码 我就是想知道,当我填完了四项内容后,点击提交按钮,我所填的内容能保存在应用中,并在再次调到登录界面时能用刚注册的信息成功登录,这是可以实现的吧?? 解决方案 可以实现,你可以用SharedPreference保存你的这些内容,再次启动的时候去检测是否有值,有就起个线程后台登陆 解决方案二: android 中有一个全局的 Application 可以用来存储你的变量.

我想做一个android手机的登陆界面,求指点

问题描述 我想做一个android手机的登陆界面,求指点 服务器是别人做好的.现在想做个登陆界面,但是没有做过,不知道该看什么资料,从哪里着手,请大神指点(如果可以,详细点最好). 解决方案 1.布局设计 2.使用sharedpreferences进行存储账号密码.http://blog.csdn.net/wulianghuan/article/details/8501063 3.将账号密码发送到服务器进行验证.http://blog.csdn.net/guolin_blog/article/d

Android实现记住用户名和密码功能

Android 实现记住用户名和密码的功能是通过SharedPreference 存储来实现的.创建一个复选按钮,通过按钮的否选取来进行事件处理.若按钮选中存储账号和密码的信息.若按钮没有选中,则清空账号和密码的信息. 结果演示: 源代码下载地址: https://github.com/GXS1225/Android-----.git 分析 (1)判断是否输入了账号和密码 if(name.trim().equals("")){ Toast.makeText(this, "请您

Android仿QQ微信开场导航以及登陆界面

大家对于微信等社交应用的UI界面已经都很熟悉了,该UI最值得借鉴的莫过于第一次使用的时候一些列产品介绍的图片,可以左右滑动浏览,最后进入应用,这一效果适用于多种项目中,相信今后开发应用一定会用得到.网路上也有不少这样的例子可以参考,不过看别人的代码是一回事,自己实际做起来又是另一回事,今天的这个微信的Demo是研究过多个类似的界面后自己动手去实现的效果,并且都加上了详细的注释(虽然有的多余),方便以后回顾一看就能看明白,只有真正亲自写一写,体会才会更深刻,例子中的图片都是在微信的APK中提取出来

Android UI组件----用相对布局RelativeLayout做一个登陆界面

[正文] 两个小时的学习成果,对于我这种还没入门但渴望不断进步的初学者来说,是一种激励.通过自己一行一行的敲代码,实现了用相对布局做一个登陆界面的效果. XML文件完整版代码如下: 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layou