InputFilter實(shí)現(xiàn)EditText文本輸入過濾器
EditText是Android的文本輸入框控件,這地球人應(yīng)該都知道的了,但是默認(rèn)的EditText是無所不能輸入的,有時候我們需要設(shè)計(jì)一款軟件,而且是給小孩子使用的,而且需要屏蔽以下未成年人所不能涉及的內(nèi)容,也就是屏蔽某些所不能輸入的文字的時候,該如何做呢?
其實(shí)Android的SDK早已經(jīng)為我們想過這個問題了,它為我們提供了一個叫做InputFilter的東西,通過它我們可以輕松的設(shè)計(jì)一個過濾器,用于屏蔽用戶的某些輸入,或者將輸入改成某些良性的內(nèi)容,從而解決了以上的問題。
實(shí)現(xiàn)InputFilter過濾器,需要覆蓋一個叫filter的方法。
public abstract CharSequence filter (
CharSequence source, //輸入的文字
int start, //開始位置
int end, //結(jié)束位置
Spanned dest, //當(dāng)前顯示的內(nèi)容
int dstart, //當(dāng)前開始位置
int dend //當(dāng)前結(jié)束位置
);
以下實(shí)現(xiàn)的InputFilter為無論輸入什么內(nèi)容,都被自動替換成“ATAAW.COM”。
editText.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence src, int start, int end, Spanned dst, int dstart, int dend) {
return src.length() < 1 ? dst.subSequence(dstart, dend) : "ATAAW.COM";
}
} });
由以上實(shí)例我們可以實(shí)現(xiàn)這樣一個功能,讓EditText控件無法輸入任何內(nèi)容,如何做呢?只需要將以上的“ATAAW.COM”替換成“”即可,每次輸入都等于沒輸入任何內(nèi)容。文章
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
???? 隱姓埋名/低調(diào)華麗/簡單生活/完美人生
posted on 2010-11-08 09:44 poetguo 閱讀(7926) 評論(0) 編輯 收藏 所屬分類: Android