欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 登錄頁(yè)面的實(shí)現(xiàn)代碼(密碼顯示隱藏、EditText 圖標(biāo)切換、限制輸入長(zhǎng)度)

 更新時(shí)間:2020年08月14日 09:12:14   作者:粽籺  
這篇文章主要介紹了Android 登錄頁(yè)面的實(shí)現(xiàn)代碼(密碼顯示隱藏、EditText 圖標(biāo)切換、限制輸入長(zhǎng)度),本文通過(guò)兩種方法給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

效果演示

密碼隱藏顯示、圖標(biāo)切換演示
最長(zhǎng)輸入限制演示

密碼顯示與隱藏

方法一

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());	//光標(biāo)調(diào)整到文本末端

方法二

if (status) {
 etPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());	//顯示文本
 status = false;
} else {
 etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());		//隱藏文本
 status = true;
}

EditText 圖標(biāo)切換

實(shí)現(xiàn)方法

//編輯框點(diǎn)擊事件,取 icon 點(diǎn)擊位置設(shè)置點(diǎn)擊事件
etPassword.setOnTouchListener(new View.OnTouchListener() {
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			// 長(zhǎng)度為4的數(shù)組,分別表示左、右、上、下四個(gè) icon
			Drawable drawable = etPassword.getCompoundDrawables()[2];
			if (drawable == null) //如果右邊沒(méi)有圖片,不再處理
				return false;
			if (event.getAction() != MotionEvent.ACTION_UP)	//如果不是按下事件,不再處理
				return false;
			if (event.getX() > etPassword.getWidth() - etPassword.getPaddingRight() - drawable.getIntrinsicWidth()) {	
			//點(diǎn)擊范圍為右側(cè) icon 位置
				if (status) {
					status= false;
					//獲取小眼睛圖標(biāo)
					Drawable iconDrawable = getResources().getDrawable(R.drawable.icon_eye_open);
					//設(shè)置新圖標(biāo),分別對(duì)應(yīng)左、上、右、下4個(gè)圖標(biāo)
					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;
		}
	});

限制輸入長(zhǎng)度

方法一:以判斷方式控制最大輸入長(zhǎng)度

private static final int MAX_INPUT_LENGTH = 50;		//限制最大輸入長(zhǎng)度50

etPassword.setFilters(new InputFilter[]{new InputFilter() {		//通過(guò)過(guò)濾器進(jìn)行限制
 @Override
 public CharSequence filter(CharSequence charSequence, int start, int end, Spanned spanned, int dstart, int dend) {
  //charSequence 為輸入內(nèi)容(刪除時(shí)為空),spanned 為輸入前輸入框內(nèi)容
  if ((!charSequence.toString().equals("")) && spanned.toString().length() >= MAX_INPUT_LENGTH) {
   //判斷當(dāng)前有內(nèi)容輸入(不為刪除),且當(dāng)前內(nèi)容長(zhǎng)度為最大長(zhǎng)度,進(jìn)行 Toast 提醒,且返回空
   Toast.makeText(MyApplication.context, "最大輸入長(zhǎng)度為50", Toast.LENGTH_SHORT).show();
   return "";		//返回值為輸入框增加內(nèi)容,返回空不增加,默認(rèn)返回 null
  }
  return null;
 }
}});

方法二:以過(guò)濾器方式控制最大輸入長(zhǎng)度

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, "最大輸入長(zhǎng)度為50", Toast.LENGTH_SHORT).show();
  }
  return null;
 }
},new InputFilter.LengthFilter(MAX_INPUT_LENGTH)});		//以過(guò)濾器方式控制最大輸入長(zhǎng)度

總結(jié)

到此這篇關(guān)于Android 登錄頁(yè)面的實(shí)現(xiàn)代碼(密碼顯示隱藏、EditText 圖標(biāo)切換、限制輸入長(zhǎng)度)的文章就介紹到這了,更多相關(guān)Android 登錄頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論