国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

InputFilter實現(xiàn)EditText文本輸入過濾器實例代碼解析

2019-12-12 04:28:12
字體:
供稿:網(wǎng)友

 EditText是Android的文本輸入框控件,這地球人應(yīng)該都知道的了,但是默認(rèn)的EditText是無所不能輸入的,有時候我們需要設(shè)計一 款軟件,而且是給小孩子使用的,而且需要屏蔽以下未成年人所不能涉及的內(nèi)容,也就是屏蔽某些所不能輸入的文字的時候,該如何做呢?

其實Android的SDK早已經(jīng)為我們想過這個問題了,它為我們提供了一個叫做InputFilter的東西,通過它我們可以輕松的設(shè)計一個過濾器,用于屏蔽用戶的某些輸入,或者將輸入改成某些良性的內(nèi)容,從而解決了以上的問題。

實現(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é)束位置 );

以下實現(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"; } } }); 

由以上實例我們可以實現(xiàn)這樣一個功能,讓EditText控件無法輸入任何內(nèi)容,如何做呢?只需要將以上的“ATAAW.COM”替換成“”即可,每次輸入都等于沒輸入任何內(nèi)容。

此處在添加個我用的不多,容易忘的兩個api:

indexOf()的用法:

返回字符中indexof(string)中字串string在父串中首次出現(xiàn)的位置,

比如:String ss = "1111.';

int index = ss .indexOf(".");

index的值為4; //從0開始

substring用法:

str=str.substring(int beginIndex);截取掉str從首字母起長度為beginIndex的字符串,將剩余字符串賦值給str;
str=str.substring(int beginIndex,int endIndex);截取str中從beginIndex開始至endIndex結(jié)束時的字符串,并將其賦值給str;

比如:

String s1 ="1234567890abcdefgh";s1 = s1.substring(10);

s1的值為:abcdefgh

String s1 ="1234567890abcdefgh";s1 = s1.substring(0,9);System.out.println(s1);

s1的值為:123456789

以上所述是小編給大家介紹的 InputFilter實現(xiàn)EditText文本輸入過濾器實例代碼解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 林甸县| 晋宁县| 夏邑县| 广灵县| 清涧县| 辽阳市| 山丹县| 诸暨市| 彰化县| 托克逊县| 三原县| 竹山县| 文化| 玉林市| 乌苏市| 新巴尔虎左旗| 茶陵县| 道真| 虹口区| 汕尾市| 黄龙县| 定日县| 灌南县| 延寿县| 务川| 天柱县| 邻水| 临沂市| 黑山县| 阿瓦提县| 炎陵县| 东莞市| 玉龙| 鄂州市| 长顺县| 三亚市| 瑞安市| 胶州市| 商都县| 青龙| 吴堡县|