Android 는 edittext 정수 와 소수 자릿수 필 터 를 제한 합 니 다(상세 설명)
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 정수 와 소수 자릿수 필터(상세 설명)는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
소프트 키보드 문제가 항상 호출되지 않음최근 프로젝트에서 이러한 문제에 부딪혔는데edittext를 클릭하면 플로피 키보드를 찾을 수 없습니다. 만약에 직접 설정하면 또 번쩍번쩍하는 상황이 발생할 수 있기 때문에 판단을 더해야 합니다. 테스트를 통해 이 문...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.