android edittext 过滤英文名称,Android 限制edittext 整数和小数位数 过滤器(详解)
寫了一個過濾器,根據(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ù)的,然后對輸入的數(shù)據(jù)進(jìn)行限制,只需要將過濾器添加到對應(yīng)的edittext控件即可,如下:stopEditText.setFilters(new InputFilter[] { new ComponentDigitCtrlFilter(digit == 2,digit) });
以上這篇Android 限制edittext 整數(shù)和小數(shù)位數(shù) 過濾器(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持編程小技巧。
總結(jié)
如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。
本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡(luò)收集整理提供,作為學(xué)習(xí)參考使用,版權(quán)屬于原作者。
小編個人微信號 jb51ccc
喜歡與人分享編程技術(shù)與工作經(jīng)驗(yàn),歡迎加入編程之家官方交流群!
總結(jié)
以上是生活随笔為你收集整理的android edittext 过滤英文名称,Android 限制edittext 整数和小数位数 过滤器(详解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java oo_我爱oo,我爱java
- 下一篇: 几分钟内上线一个网站,这些神器我爱了!