Android 高仿微信轉(zhuǎn)賬金錢(qián)輸入框規(guī)則
微信轉(zhuǎn)賬輸入框規(guī)則(可能不全)
1、小數(shù)點(diǎn)后兩位
2、起始輸入小數(shù)點(diǎn),顯示0.
3、刪除到第一個(gè)位置是小數(shù)點(diǎn)的時(shí)候,第一個(gè)位置為0 ,避免出現(xiàn)小數(shù)點(diǎn)在第一個(gè)位置的情況
修改這個(gè)朋友的規(guī)則而來(lái),他的規(guī)則在保證小數(shù)點(diǎn)后兩位有個(gè)小bug,已經(jīng)修改
http://www.dbjr.com.cn/article/99361.htm
效果:
@Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String sourceText = source.toString(); String destText = dest.toString(); //驗(yàn)證刪除等按鍵 if (TextUtils.isEmpty(sourceText)) { if(dstart==0&&destText.indexOf(POINTER)==1){//保證小數(shù)點(diǎn)不在第一個(gè)位置 return "0"; } return ""; } Matcher matcher = mPattern.matcher(source); //已經(jīng)輸入小數(shù)點(diǎn)的情況下,只能輸入數(shù)字 if(destText.contains(POINTER)) { if (!matcher.matches()) { return ""; } else { if (POINTER.equals(source)) { //只能輸入一個(gè)小數(shù)點(diǎn) return ""; } } //驗(yàn)證小數(shù)點(diǎn)精度,保證小數(shù)點(diǎn)后只能輸入兩位 int index = destText.indexOf(POINTER); int length = destText.trim().length() - index; if (length > POINTER_LENGTH&&dstart>index) { return ""; } } else { //沒(méi)有輸入小數(shù)點(diǎn)的情況下,只能輸入小數(shù)點(diǎn)和數(shù)字,但首位不能輸入小數(shù)點(diǎn)和0 if (!matcher.matches()) { return ""; } else { if ((POINTER.equals(source)) && dstart==0) {//第一個(gè)位置輸入小數(shù)點(diǎn)的情況 return "0."; } } } //驗(yàn)證輸入金額的大小 double sumText = Double.parseDouble(destText + sourceText); if (sumText > MAX_VALUE) { return dest.subSequence(dstart, dend); } return dest.subSequence(dstart, dend) + sourceText; }
EditText樣式
<EditText android:id="@+id/et" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="20sp" android:maxLength="10" android:inputType="numberDecimal" />
設(shè)置filter
EditText ed = (EditText) findViewById(R.id.et); InputFilter[] is = {new CashierInputFilter()}; ed.setFilters(is);
源碼
- Android 個(gè)人理財(cái)工具六:顯示賬單明細(xì) 下
- Android 個(gè)人理財(cái)工具五:顯示賬單明細(xì) 上
- Android 個(gè)人理財(cái)工具四:添加賬單頁(yè)面 下
- Android 個(gè)人理財(cái)工具三:添加賬單頁(yè)面 上
- Android 個(gè)人理財(cái)工具二:使用SQLite實(shí)現(xiàn)啟動(dòng)時(shí)初始化數(shù)據(jù)
- Android 個(gè)人理財(cái)工具一:項(xiàng)目概述與啟動(dòng)界面的實(shí)現(xiàn)
- Android 錢(qián)包支付之輸入支付密碼的實(shí)現(xiàn)步驟
- Android快速實(shí)現(xiàn)一個(gè)財(cái)務(wù)APP程序詳解
相關(guān)文章
android滑動(dòng)解鎖震動(dòng)效果的開(kāi)啟和取消
在4.0的圓環(huán)滑動(dòng)解鎖中,我們點(diǎn)擊下去的時(shí)候會(huì)有震動(dòng)效果,因?yàn)檫@個(gè)控件設(shè)置的震動(dòng)效果沒(méi)有綁定設(shè)置中設(shè)置的觸摸振動(dòng)開(kāi)關(guān)來(lái)取消振動(dòng)效果,下邊這個(gè)例子實(shí)現(xiàn)了開(kāi)啟和取消的方法2013-06-06Android Studio使用ButterKnife和Zelezny的方法
這篇文章主要為大家詳細(xì)介紹了Android Studio使用ButterKnife和Zelezny的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04基于Android6.0實(shí)現(xiàn)彈出Window提示框
這篇文章主要為大家詳細(xì)介紹了基于Android6.0實(shí)現(xiàn)彈出Window提示框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10android學(xué)習(xí)筆記之View的滑動(dòng)
Android開(kāi)發(fā)中我們常常需要View滑動(dòng)實(shí)現(xiàn)一些絢麗的效果來(lái)優(yōu)化用戶體驗(yàn),下面這篇文章主要給大家介紹了關(guān)于android學(xué)習(xí)筆記之View滑動(dòng)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Android為textView設(shè)置setText的時(shí)候報(bào)錯(cuò)的講解方案
今天小編就為大家分享一篇關(guān)于Android為textView設(shè)置setText的時(shí)候報(bào)錯(cuò)的講解方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03詳解Android中PopupWindow在7.0后適配的解決
本篇文章主要介紹了詳解Android中PopupWindow在7.0后適配的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Android開(kāi)發(fā)Popwindow仿微信右上角下拉菜單實(shí)例代碼
這篇文章主要介紹了Popwindow仿微信右上角下拉菜單實(shí)例代碼的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-10-10Android帶圓形數(shù)字進(jìn)度的自定義進(jìn)度條示例
本篇文章主要介紹了Android帶圓形數(shù)字進(jìn)度的自定義進(jìn)度條示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02