Android 는 EditText 정규 표현 식 필 터 를 실현 합 니 다.

2948 단어
Android 는 EditText 정규 표현 식 필 터 를 실현 합 니 다.
xEditUtils.set(etUserName, Regular.LETTER_NUMBER, "        ");
public static final String LETTER_NUMBER="[a-zA-Z\\d]*";

public class XEditUtils {
        public void set(final EditText et, final String regular, final String msg) {
                et.addTextChangedListener(new TextWatcher() {
                        String before = "";
                        @Override
                        public void onTextChanged(CharSequence s, int start, int before,
                                        int count) {

                        }

                        @Override
                        public void beforeTextChanged(CharSequence s, int start, int count,
                                        int after) {
                                before = s.toString();
                        }

                        @Override
                        public void afterTextChanged(Editable s) {
                                if (!s.toString().matches(regular) && !"".equals(s.toString())) {
                                        et.setText(before);
                                        et.setSelection(et.getText().toString().length());
                                        if (msg != null) {
                                                Toast.makeText(et.getContext(), msg, Toast.LENGTH_SHORT)
                                                                .show();
                                        }
                                }
                        }
                });
        }
}

좋은 웹페이지 즐겨찾기