Custom format edit text input android to accept credit card number

后端 未结 8 886
终归单人心
终归单人心 2020-11-29 01:46

how to make edit text accept input in format

4digitnumber-4dignumber-4dignumber-4dignumber   

The code

text.addTextChangedL         


        
8条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-29 02:32

    In my case below code is working fine.

    editTextCreditCard.addTextChangedListener(new FourDigitCardFormatWatcher());
    

    Add custom class for TextWatcher.

    public class FourDigitCardFormatWatcher implements TextWatcher {
    
            private static final char space = ' ';
    
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
    
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
    
            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() > 0 && (s.length() % 5) == 0) {
                    final char c = s.charAt(s.length() - 1);
                    if (space == c) {
                        s.delete(s.length() - 1, s.length());
                    }
                }
                if (s.length() > 0 && (s.length() % 5) == 0) {
                    char c = s.charAt(s.length() - 1);
                    if (Character.isDigit(c) && TextUtils.split(s.toString(), String.valueOf(space)).length <= 3) {
                        s.insert(s.length() - 1, String.valueOf(space));
                    }
                }
            }
        }
    

    Hope this would help you.

提交回复
热议问题