EditText文本輸入控件,在App開發(fā)中可能會遇到各種各樣的要求, 關(guān)于inputType和digits這兩個不再介紹喘落,介紹一下復(fù)雜的輸入,例如輸入手機(jī)號蟹倾,只能是第一位為1匣缘,后面是0-9的數(shù)據(jù),總長度11位鲜棠,再比如輸入的賬號只能是字母或數(shù)字肌厨,長度最多20位,這就用到了InputFilter這個類和正則表達(dá)式豁陆。
關(guān)于正規(guī)不是特別清楚的建議學(xué)習(xí)一下柑爸,非常有用。下面來說一下手機(jī)號輸入中正則為“^1[0-9]{0,10}$”盒音,賬號輸入中正則為“^[a-zA-Z0-9]{0,20}$”表鳍。
正則表達(dá)式工具類如下:
限制輸入的InputFilter類如下:
每輸入一字符都要判斷一下,如果正常返回輸入的數(shù)據(jù)祥诽,如果不合法譬圣,返回空串。
這樣合法的數(shù)據(jù)就能輸入進(jìn)去雄坪,不合法的數(shù)據(jù)就被過濾掉了厘熟,同時最重要的一點(diǎn)就是把過濾器設(shè)置給editText, FilterUtils.setFilter(editText, new EditPhoneFilter()); 這樣就完成了。
簡簡單單小功能,歡迎大神指導(dǎo)绳姨。