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(new View.OnTouchListener() {
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			// 长度为4的数组,分别表示左、右、上、下四个 icon
			Drawable drawable = etPassword.getCompoundDrawables()[2];
			if (drawable == null) //如果右边没有图片,不再处理
				return false;
			if (event.getAction() != MotionEvent.ACTION_UP)	//如果不是按下事件,不再处理
				return false;
			if (event.getX() > etPassword.getWidth() - etPassword.getPaddingRight() - drawable.getIntrinsicWidth()) {
			//点击范围为右侧 icon 位置
				if (status) {
					status= false;
					//获取小眼睛图标
					Drawable iconDrawable = getResources().getDrawable(R.drawable.icon_eye_open);
					//设置新图标,分别对应左、上、右、下4个图标
					etPassword.setCompoundDrawablesWithIntrinsicBounds(null, null, iconDrawable, null);
				} else {
					status= true;
					Drawable iconDrawable = getResources().getDrawable(R.drawable.icon_eye_close);
					etPassword.setCompoundDrawablesWithIntrinsicBounds(null, null, iconDrawable, null);
				}
			}
			return false;
		}
	});

限制输入长度

方法一:以判断方式控制最大输入长度

private static final int MAX_INPUT_LENGTH = 50;		//限制最大输入长度50

etPassword.setFilters(new InputFilter[]{new InputFilter() {		//通过过滤器进行限制
 @Override
 public CharSequence filter(CharSequence charSequence, int start, int end, Spanned spanned, int dstart, int dend) {
  //charSequence 为输入内容(删除时为空),spanned 为输入前输入框内容
  if ((!charSequence.toString().equals("")) && spanned.toString().length() >= MAX_INPUT_LENGTH) {
   //判断当前有内容输入(不为删除),且当前内容长度为最大长度,进行 Toast 提醒,且返回空
   Toast.makeText(MyApplication.context, "最大输入长度为50", Toast.LENGTH_SHORT).show();
   return "";		//返回值为输入框增加内容,返回空不增加,默认返回 null
  }
  return null;
 }
}});

方法二:以过滤器方式控制最大输入长度

etChange.setFilters(new InputFilter[]{new InputFilter() {
 @Override
 public CharSequence filter(CharSequence charSequence, int start, int end, Spanned spanned, int dstart, int dend) {
  if((!source.toString().equals("")) && dest.toString().length() >= MAX_INPUT_LENGTH){
   Toast.makeText(MainActivity.this, "最大输入长度为50", Toast.LENGTH_SHORT).show();
  }
  return null;
 }
},new InputFilter.LengthFilter(MAX_INPUT_LENGTH)});		//以过滤器方式控制最大输入长度

总结

到此这篇关于Android 登录页面的实现代码(密码显示隐藏、EditText 图标切换、限制输入长度)的文章就介绍到这了,更多相关Android 登录页面内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 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); //隐藏

  • vue+elementUi 实现密码显示/隐藏+小图标变化功能

    vue+elementUi 实现密码显示/隐藏+小图标变化(js一共三行代码,其中一行为了美观)...,先给大家展示下效果图,感觉不错可以参考实现代码. [效果图] [html] // 前后代码[略] <el-form-item label="密码" prop="pwd"> <el-input v-model="ruleForm.pwd" :type="pwdType" placeholder="请

  • Android制作登录页面并且记住账号密码功能的实现代码

    一.页面搭建 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmln

  • SpringBoot创建JSP登录页面功能实例代码

    添加JSP配置 1.pom.xml添加jsp解析引擎 <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.s

  • Android登录界面的实现代码分享

    最近由于项目需要,宝宝好久没搞Android啦,又是因为项目需要,现在继续弄Android,哎,说多了都是泪呀,别的不用多说,先搞一个登录界面练练手,登录界面可以说是Android项目中最常用也是最基本的,如果这个都搞不定,那可以直接去跳21世纪楼啦. 废话不多说,先上效果图了,如果大家感觉还不错,请参考实现代码吧. 相信这种渣渣布局对很多人来说太简单啦,直接上布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk

  • Session过期后自动跳转到登录页面的实例代码

    最近做了一个项目其中有需求,要实现自动登录功能,通过查阅相关资料,打算用session监听来做,下面给大家列出了配置监听器的方法: 1.在项目的web.xml文件中添加如下代码: <!--添加Session监听器--> <listener> <listener-class> 监听器路径 </listener-class> </listener> 2.编写java类. public class SessionListener implements

  • Android中实现EditText密码显示隐藏的方法

    在Google发布了support:design:23+以后我们发现有这么一个东西TextInputLayout,先看下效果图: <android.support.design.widget.TextInputLayout android:id="@+id/pwdLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:passw

  • jQuery通过改变input的type属性实现密码显示隐藏切换功能

    一般我们做登录注册的时候都会提供一个让用户选择自己输入的密码是否显示的需求, 这种需求我们肯定会想到只要动态改变input的type属性不就好了(text显示/password隐藏): 于是我用了$(''#id).attr('type', 'password')这个API 然而结果并不是我想的那样,出错了 HTML 代码 Uncaught Error: type property can't be changed 意思大概就是这个属性不能被修改. 于是我就googl一手. 然而我得到的结果是这样

  • vue实现密码显示隐藏功能的思路详解

    效果: 思路: 利用input的type属性,当type值是text的时候展示密码,当type值是password的时候隐藏密码: 于是很容易想到用v-bind来绑定type,同时用一个布尔值来控制,写成三元表达式的形式: 加入一个图片元素,点击图标元素切换这个布尔值,就可以达到切换显示隐藏,切换布尔值的同时也切换图标. 页面布局 <div id='app'> <!--三元表达式 pwdFlag为真则type是password密码隐藏 pwdFlag为假则type是text密码显示 --

  • 基于jquery实现页面滚动时顶部导航显示隐藏

    本文实例讲述了jquery实现页面滚动时顶部导航显示隐藏效果代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: 引入核心文件 <script src="js/jquery/1.11.1/jquery.min.js"></script> 构建html,margint这个div中为了出现滚动条而建,并无实际作用. <div class="top-title">这是顶部导航条</div> <di

随机推荐