Android Edittext 입력 제한 1 자리 소수 2 자리 소수 (n 자리) 소수 단순 공통 구현

5126 단어
최근 한 수요 의 최대 금액 은 999999.99 로 인터넷 에서 보면 모두 비교적 번 거 롭 고 이해 하기 쉽 지 않다.
우선 입력 형식 을 xml 에 설정 하 는 것 을 제한 합 니 다.
android:inputType="numberDecimal"
            9 
android:maxLength="9"
        2   
     
private String discountStr;

private TextWatcher discountWatch = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        discountStr = s.toString();
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        String trim = s.toString().trim();
        if (!TextUtils.isEmpty(trim)) {
            Double currentInput = 0.0;
            if (trim.contains(".")) {
                String[] split = trim.split("\\.");
                if (split.length > 1) {
                    String s1 = split[1];
                    if (!TextUtils.isEmpty(s1)) {
                        if (s1.length() == 2) {
                            etDiscount.setText(discountStr);
                            try {
                                String trim1 = etDiscount.getText().toString().trim();
                                etDiscount.setSelection(trim1.length());
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                            return;
                        }
                    }
                }
            }
           

        } 

    }

    @Override
    public void afterTextChanged(Editable s) {

    }
};
원 리 는 간단 합 니 다. beforetextChanged 에서 지난번 에 입력 한 값 을 discountst 로 저장 합 니 다.
, onTextChanged           ,              , 
           2(N)        discountStr。,        





좋은 웹페이지 즐겨찾기