Android 는 edittext 정수 와 소수 자릿수 필 터 를 제한 합 니 다(상세 설명)

필요 에 따라 editext 가 입력 한 정수 와 작은 숫자 를 제한 하 는 필 터 를 썼 습 니 다.다음 코드 는 다음 과 같 습 니 다.

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               
 * @author qiulinhe [email protected] 
 */
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 가 정수 두 자리 소수 세 자리 수 를 가 져 올 지 판단 한 다음 에 입력 한 데 이 터 를 제한 합 니 다.필 터 를 대응 하 는 edittext 컨트롤 에 추가 하면 됩 니 다.stopEditText.setFilters(new InputFilter[]{new ComponentDigitCtrl Filter(digit==2,digit)});
이상 의 안 드 로 이 드 제한 edittext 정수 와 소수 자릿수 필터(상세 설명)는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기