您好,登錄后才能下訂單哦!
寫了一個(gè)過(guò)濾器,根據(jù)需要限制edittext輸入的整數(shù)和小數(shù)位,如下代碼:
package allone.verbank.apad.client.component; import android.text.InputFilter; import android.text.Spanned; /** * * @Title: ComponentDigitCtrlFilter.java * @Package allone.verbank.apad.client.component * @Description: 為了限制edit根據(jù)商品輸入指定的位數(shù)和小數(shù)位 * @author qiulinhe qiu.linhe@allone.cn */ public class ComponentDigitCtrlFilter implements InputFilter { private boolean isJPY; private int digit; public ComponentDigitCtrlFilter(boolean isJPY, int digit) { this.isJPY = isJPY; this.digit = digit; } @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { // 刪除等特殊字符,直接返回 if ("".equals(source.toString())) { return null; } String oriValue = dest.toString(); StringBuffer sb = new StringBuffer(oriValue); sb.append(source); String newValue = sb.toString(); String[] newValueVec = newValue.split("\\."); if (newValueVec.length == 2) { double number = Double.parseDouble(newValueVec[0]); boolean numberflag = true; if (isJPY) { numberflag = ((number - 999 > 0.000001) ? false : true); } else { numberflag = ((number - 99 > 0.000001) ? false : true); } boolean digitflag = true; try { String digitNumber = newValueVec[1]; digitflag = digitNumber.toCharArray().length > digit ? false : true; } catch (Exception ex) { digitflag = false; } if (numberflag && digitflag) { return source; } else { return ""; } } else { double value = Double.parseDouble(newValue); if (isJPY) { return value > 999 ? "" : source; } else { return value > 99 ? "" : source; } } // dest.subSequence(dstart, dend) } }
邏輯是判斷傳入的isJPY是否是要整數(shù)兩位小數(shù)三位數(shù)的,然后對(duì)輸入的數(shù)據(jù)進(jìn)行限制,只需要將過(guò)濾器添加到對(duì)應(yīng)的edittext控件即可,如下:stopEditText.setFilters(new InputFilter[] { new ComponentDigitCtrlFilter(digit == 2, digit) });
以上這篇Android 限制edittext 整數(shù)和小數(shù)位數(shù) 過(guò)濾器(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。