EditText 설정은 정수 금액만 입력할 수 있습니다.
<EditText
android:id="@+id/input_edit"
android:layout_width="36dp"
android:layout_height="wrap_content"
android:background="@null"
android:focusable="true"
android:gravity="center"
android:hint="0"
android:numeric="integer"
android:singleLine="true" />
2. 입력 내용 필터링
EditText input_edit= (EditText) findViewById(R.id.input_edit);
InputFilter[] filters = {new CashierInputFilter()};
input_edit.setFilters(filters);
3. 필터링 기준: 정수만 입력할 수 있고 최대값은 200입니다.
public class CashierInputFilter implements InputFilter {
Pattern mPattern;
//
private static final int MAX_VALUE = 200;
//
private static final int POINTER_LENGTH = 0;
private static final String POINTER = ".";
private static final String ZERO = "0";
public CashierInputFilter() {
mPattern = Pattern.compile("([0-9]|\\.)*");
}
/**
* @param source
* @param start , 0
* @param end , source -1
* @param dest
* @param dstart , 0
* @param dend , dest -1
* @return
*/
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
String sourceText = source.toString();
String destText = dest.toString();
//
if (TextUtils.isEmpty(sourceText)) {
return "";
}
Matcher matcher = mPattern.matcher(source);
// ,
if (destText.contains(POINTER)) {
if (!matcher.matches()) {
return "";
} else {
if (POINTER.equals(source)) { //
return "";
}
}
// , 2
int index = destText.indexOf(POINTER);
int length = dend - index;
if (length > POINTER_LENGTH) {
return dest.subSequence(dstart, dend);
}
} else {
// , , 0
if (!matcher.matches()) {
return "";
} else {
if ((POINTER.equals(source)) && TextUtils.isEmpty(destText)) {
return "";
}
// “0”, “.”
if (ZERO.equals(destText)) {
if (!POINTER.equals(sourceText)) {
return "";
}
}
}
}
//
double sumText = Double.parseDouble(destText + sourceText);
if (sumText > MAX_VALUE) {
ToastUtil.toast(" 200 ");
return dest.subSequence(dstart, dend);
}
return dest.subSequence(dstart, dend) + sourceText;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.