Android 登錄頁(yè)面的實(shí)現(xiàn)代碼(密碼顯示隱藏、EditText 圖標(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)文章希望大家以后多多支持腳本之家!
- Android實(shí)現(xiàn)密碼隱藏和顯示
- Android實(shí)現(xiàn)顯示和隱藏密碼功能的示例代碼
- Android中實(shí)現(xiàn)密碼的隱藏和顯示的示例
- Android EditText密碼的隱藏和顯示功能
- Android 密碼 顯示與隱藏功能實(shí)例
- Android中實(shí)現(xiàn)EditText密碼顯示隱藏的方法
- Android文本輸入框(EditText)輸入密碼時(shí)顯示與隱藏
- Android實(shí)現(xiàn)動(dòng)態(tài)顯示或隱藏密碼輸入框的內(nèi)容
- Android中EditText顯示明文與密碼的兩種方式
- Android開發(fā)EditText實(shí)現(xiàn)密碼顯示隱藏
相關(guān)文章
Android Style.xml的應(yīng)用詳解及代碼實(shí)現(xiàn)
這篇文章主要介紹了Android Style.xml的應(yīng)用詳解及代碼實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-10-10Android使用Fragment打造萬(wàn)能頁(yè)面切換框架
這篇文章主要介紹了Android使用Fragment打造萬(wàn)能頁(yè)面切換框架的相關(guān)資料,需要的朋友可以參考下2016-01-01Android 版本、權(quán)限適配相關(guān)總結(jié)
針對(duì) Android 6.0 (API 23)已以上版本,Google 增強(qiáng)全新的權(quán)限,應(yīng)用程序在使用敏感權(quán)限(如拍照、查閱聯(lián)系人或存儲(chǔ))時(shí)需要先征求用戶必須贏得用戶同意。2021-05-05解決Android Studio xml 格式化不自動(dòng)換行的問(wèn)題
這篇文章主要介紹了解決Android Studio xml 格式化不自動(dòng)換行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android中使用Handler及Countdowntimer實(shí)現(xiàn)包含倒計(jì)時(shí)的閃屏頁(yè)面
這篇文章主要介紹了Android中使用Handler及Countdowntimer實(shí)現(xiàn)包含倒計(jì)時(shí)的閃屏頁(yè)面,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Android BottomNavigationView結(jié)合ViewPager實(shí)現(xiàn)底部導(dǎo)航欄步驟詳解
這篇文章主要介紹了Android BottomNavigationView結(jié)合ViewPager實(shí)現(xiàn)底部導(dǎo)航欄步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02