项目总算是要告一段落了。今天有时间再来更新几篇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">onTextChangedandroid 这么说:This method is called to notify you that, within
s
, the
count
characters beginning at
start
have just replaced old text that had length
before
.
这句话是说,有count个字符从start位置开始,替代了旧的文本框内的before个字符。
其中这几个参数:s 就是输入或者删除之后,文本框中的东西了,你往里面填一个字符,count就是1 ,删一个就是0 ,start貌似是光标的位置,before,start我也真心没搞清楚,唉,就这样吧,
afterTextChanged 过分简单,自己看着办吧。