Android 高仿微信轉(zhuǎ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ī)則而來,他的規(guī)則在保證小數(shù)點(diǎn)后兩位有個(gè)小bug,已經(jīng)修改
http://www.dhdzp.com/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 {
//沒有輸入小數(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)工具四:添加賬單頁面 下
- Android 個(gè)人理財(cái)工具三:添加賬單頁面 上
- 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 錢包支付之輸入支付密碼的實(shí)現(xiàn)步驟
- Android快速實(shí)現(xiàn)一個(gè)財(cái)務(wù)APP程序詳解
相關(guān)文章
Android實(shí)現(xiàn)控件拖動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)控件拖動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Android編程開發(fā)之打開文件的Intent及使用方法
這篇文章主要介紹了Android編程開發(fā)之打開文件的Intent及使用方法,已實(shí)例形式分析了Android打開文件Intent的相關(guān)布局及功能實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
android 自定義ScrollView實(shí)現(xiàn)背景圖片伸縮的實(shí)現(xiàn)代碼及思路
本文純屬個(gè)人見解,是對前面學(xué)習(xí)的總結(jié),如有描述不正確的地方還請高手指正~,首先還是按照通例給大家看下示例.2013-05-05
Android模擬實(shí)現(xiàn)華為系統(tǒng)升級進(jìn)度條
這篇文章主要介紹了如何通過Android模擬實(shí)現(xiàn)華為在系統(tǒng)升級時(shí)顯示的進(jìn)度條。文中的實(shí)現(xiàn)過程講解詳細(xì),感興趣的小伙伴可以動(dòng)手試一試2022-01-01
A07_TimePicker & DatePicker & AnalogClock & Digi
本文將帶領(lǐng)大家一起學(xué)習(xí)時(shí)間日期和時(shí)鐘的設(shè)置。A07_TimePicker & DatePicker & AnalogClock & DigitalClock 的設(shè)置,感興趣的朋友可以參考下哈2013-06-06
Android開發(fā)筆記 今天學(xué)到的一些屬性
離開實(shí)驗(yàn)室之前再貼上今天下午自己學(xué)到的一些基礎(chǔ)知識 上午干嘛了呢,忙著數(shù)據(jù)恢復(fù)呢2012-11-11
Android通過手勢實(shí)現(xiàn)的縮放處理實(shí)例代碼
Android通過手勢實(shí)現(xiàn)的縮放處理實(shí)例代碼,需要的朋友可以參考一下2013-05-05

