Android 高仿微信轉(zhuǎn)賬金錢輸入框規(guī)則
微信轉(zhuǎn)賬輸入框規(guī)則(可能不全)
1、小數(shù)點(diǎn)后兩位
2、起始輸入小數(shù)點(diǎn),顯示0.
3、刪除到第一個位置是小數(shù)點(diǎn)的時候,第一個位置為0 ,避免出現(xiàn)小數(shù)點(diǎn)在第一個位置的情況
修改這個朋友的規(guī)則而來,他的規(guī)則在保證小數(shù)點(diǎn)后兩位有個小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)不在第一個位置
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)) { //只能輸入一個小數(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) {//第一個位置輸入小數(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);
源碼
相關(guān)文章
Android Studio使用ButterKnife和Zelezny的方法
這篇文章主要為大家詳細(xì)介紹了Android Studio使用ButterKnife和Zelezny的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
基于Android6.0實(shí)現(xiàn)彈出Window提示框
這篇文章主要為大家詳細(xì)介紹了基于Android6.0實(shí)現(xiàn)彈出Window提示框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
Android為textView設(shè)置setText的時候報錯的講解方案
今天小編就為大家分享一篇關(guān)于Android為textView設(shè)置setText的時候報錯的講解方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
詳解Android中PopupWindow在7.0后適配的解決
本篇文章主要介紹了詳解Android中PopupWindow在7.0后適配的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
Android開發(fā)Popwindow仿微信右上角下拉菜單實(shí)例代碼
這篇文章主要介紹了Popwindow仿微信右上角下拉菜單實(shí)例代碼的相關(guān)資料,非常不錯具有參考借鑒價值,感興趣的朋友一起看看吧2016-10-10
Android帶圓形數(shù)字進(jìn)度的自定義進(jìn)度條示例
本篇文章主要介紹了Android帶圓形數(shù)字進(jìn)度的自定義進(jìn)度條示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02

