菜鸟的安卓实习之路----TextWatcher的三个函数

来源:互联网 发布:4d软件打不开 编辑:程序博客网 时间:2024/05/21 10:27

项目总算是要告一段落了。今天有时间再来更新几篇bolg。

这次在项目中,需要实现一个纯数字软键盘,来给程序中遇到的所有文本框填充数字,点击之后,就要弹出,遇到了这种情况,点击Adilog上面的一个preference之后,弹出一个编辑框,点击编辑框弹出软键盘。,这时候,需要preference上面的summary和文本框保持同步,这个时候,要怎么做呢?TextWatcher,妥妥的!

TextWatcher是一个接口interface , 里面有三个函数 

 public void beforeTextChanged(CharSequence s, int start,int count, int after);   public void onTextChanged(CharSequence s, int start, int before, int count); public void afterTextChanged(Editable s);


在你需要监听文本框的Preference类中, implements TextWatcher,之后,IDE会自动为你生成这三个需要实现的函数。

在你的程序里面为文本框添加这个事件      dlg.getAddressEditText().addTextChangedListener(this);    由于我的文本框在新弹出的对框上面,当然信对框框一定要写一个getAddressEditText() 来返回备件听到的编辑框EditText对象。  关键是添加事件监听函数

addTextChangedListener(this)

那么这三个函数是什么意思呢?

beforeTextChanged: 指的是在你编辑之前文本框的内容。
<pre name="code" class="html">onTextChanged  
 android 这么说:This method is called to notify you that, within s, thecount characters beginning at start have just replaced old text that had lengthbefore

这句话是说,有count个字符从start位置开始,替代了旧的文本框内的before个字符。

如果你添加了,一个字符,就从start位置开始,before=0 ,之前并没有什么被替代。如果你删了一个字符,start同样的意思,before=1就是1个字符被替代0个字符替代,所以count=0;

其中这几个参数:s 就是输入或者删除之后,文本框中的东西了,你往里面填一个字符,count就是1 ,删一个就是0 ,start貌似是光标的位置,before,start我也真心没搞清楚,唉,就这样吧,

afterTextChanged 过分简单,自己看着办吧。

0 0
原创粉丝点击