EditText 소수점 앞 뒤 자릿수 를 제한 하 는 인 스 턴 스
public class MyWatcher implements TextWatcher {
private int beforeDot;
private int afterDot;
/**
*
*
* @param beforeDot -1
* @param afterDot -1
*/
public MyWatcher(int beforeDot, int afterDot) {
this.beforeDot = beforeDot;
this.afterDot = afterDot;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
judge(s);
}
private void judge(Editable editable) {
String temp = editable.toString();
int posDot = temp.indexOf(".");
//
if (posDot == 0) {
editable.insert(0, "0");
return;
}
// 0
if (temp.equals("00")) {
editable.delete(1, 2);
return;
}
// "08"
if (temp.startsWith("0") && temp.length() > 1 && (posDot == -1 || posDot > 1)) {
editable.delete(0, 1);
return;
}
//
if (posDot < 0 && beforeDot == -1) {
//do nothing
return;
} else if (posDot < 0 && beforeDot != -1) {
//
if (temp.length() <= beforeDot) {
//do nothing
} else {
editable.delete(beforeDot, beforeDot + 1);
}
return;
}
//
if (temp.length() - posDot - 1 > afterDot && afterDot != -1) {
editable.delete(posDot + afterDot + 1, posDot + afterDot + 2);//
}
}
}
사용 할 때 는 다음 과 같 습 니 다.
<EditText
android:id="@+id/et_i_want"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:hint="0.00"
android:inputType="numberDecimal"/>etIWant.addTextChangedListener(new MyWatcher(-1, 2));// 2
이상 의 EditText 가 소수점 앞 뒤 자릿수 를 제한 하 는 인 스 턴 스 는 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
소프트 키보드 문제가 항상 호출되지 않음최근 프로젝트에서 이러한 문제에 부딪혔는데edittext를 클릭하면 플로피 키보드를 찾을 수 없습니다. 만약에 직접 설정하면 또 번쩍번쩍하는 상황이 발생할 수 있기 때문에 판단을 더해야 합니다. 테스트를 통해 이 문...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.