android的登入功能,Android登陆界面用户名检测功能

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

首先看一下效果:

e7c005b2f824844d8ab4caaf7c77b499.png 

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

07ce25ec65851f0980f77c6089b6876c.png

当输入的用户名大在合法区间则提示消失,如果密码不为空则登陆按钮可点击

虽然功能很小却用到了不少的东西:

EditText失去焦点事件的监听

获取输入的字符并且检测长度

当用户名不合法时出现提示

设置登录按钮的不可点击

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

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:background="@color/colorLogin"

>

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" />

android:layout_width="match_parent"

android:layout_height="180dp"

android:id="@+id/head_img"

>

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" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:paddingBottom="20dp"

android:orientation="vertical">

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"

/>

android:id="@+id/tv_tip"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="@color/error"

/>

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"

/>

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"

/>

然后修改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);

}

}

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

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

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值