Android 登录页面的实现代码(密码显示隐藏、EditText 图标切换、限制输入长度)
效果演示
密码显示与隐藏
方法一
if(status){ etPassword.setInputType(InputType.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL); //显示文本 status=false; }else{ etPassword.setInputType(InputType.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_PASSWORD); //隐藏文本 status=true; } etPassword.setSelection(etPassword.getText().toString().length()); //光标调整到文本末端
方法二
if(status){ etPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); //显示文本 status=false; }else{ etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance()); //隐藏文本 status=true; }
EditText图标切换
实现方法
//编辑框点击事件,取icon点击位置设置点击事件 etPassword.setOnTouchListener(newView.OnTouchListener(){ @Override publicbooleanonTouch(Viewv,MotionEventevent){ //长度为4的数组,分别表示左、右、上、下四个icon Drawabledrawable=etPassword.getCompoundDrawables()[2]; if(drawable==null)//如果右边没有图片,不再处理 returnfalse; if(event.getAction()!=MotionEvent.ACTION_UP) //如果不是按下事件,不再处理 returnfalse; if(event.getX()>etPassword.getWidth()-etPassword.getPaddingRight()-drawable.getIntrinsicWidth()){ //点击范围为右侧icon位置 if(status){ status=false; //获取小眼睛图标 DrawableiconDrawable=getResources().getDrawable(R.drawable.icon_eye_open); //设置新图标,分别对应左、上、右、下4个图标 etPassword.setCompoundDrawablesWithIntrinsicBounds(null,null,iconDrawable,null); }else{ status=true; DrawableiconDrawable=getResources().getDrawable(R.drawable.icon_eye_close); etPassword.setCompoundDrawablesWithIntrinsicBounds(null,null,iconDrawable,null); } } returnfalse; } });
限制输入长度
方法一:以判断方式控制最大输入长度
privatestaticfinalintMAX_INPUT_LENGTH=50; //限制最大输入长度50 etPassword.setFilters(newInputFilter[]{newInputFilter(){ //通过过滤器进行限制 @Override publicCharSequencefilter(CharSequencecharSequence,intstart,intend,Spannedspanned,intdstart,intdend){ //charSequence为输入内容(删除时为空),spanned为输入前输入框内容 if((!charSequence.toString().equals(""))&&spanned.toString().length()>=MAX_INPUT_LENGTH){ //判断当前有内容输入(不为删除),且当前内容长度为最大长度,进行Toast提醒,且返回空 Toast.makeText(MyApplication.context,"最大输入长度为50",Toast.LENGTH_SHORT).show(); return""; //返回值为输入框增加内容,返回空不增加,默认返回null } returnnull; } }});
方法二:以过滤器方式控制最大输入长度
etChange.setFilters(newInputFilter[]{newInputFilter(){ @Override publicCharSequencefilter(CharSequencecharSequence,intstart,intend,Spannedspanned,intdstart,intdend){ if((!source.toString().equals(""))&&dest.toString().length()>=MAX_INPUT_LENGTH){ Toast.makeText(MainActivity.this,"最大输入长度为50",Toast.LENGTH_SHORT).show(); } returnnull; } },newInputFilter.LengthFilter(MAX_INPUT_LENGTH)}); //以过滤器方式控制最大输入长度
总结
到此这篇关于Android登录页面的实现代码(密码显示隐藏、EditText图标切换、限制输入长度)的文章就介绍到这了,更多相关Android登录页面内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。