论坛首页 移动开发技术论坛

EditText 监听 Text 的 改动

浏览 13129 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-13  
EditText 监听 Text 的 改动

[功能]
当EditText 的 Text 改变时 我们希望得到通知 但是可惜的是 android 并没有这个监听器 也就无从得知变化了 但是有个类可以帮助我们 那就是 TextWatcher


[前提]
现有 EditText 其id = edit.

[代码]
1. 定义 TextWatcher 的实例
private TextWatcher watcher = new TextWatcher(){

		@Override
		public void afterTextChanged(Editable s) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void beforeTextChanged(CharSequence s, int start, int count,
				int after) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void onTextChanged(CharSequence s, int start, int before,
				int count) {
			Log.d("TAG","[TextWatcher][onTextChanged]"+s);
			
		}
    	
    };



2. 在 EditText 上注册该 TextWatcher 实例
EditText et = (EditText)findViewById(R.id.edit);
        et.addTextChangedListener(watcher);



这样 每当 EditText 的 Text 被改变的时候 onTextChanged() 就会被调用!
   发表时间:2010-01-14  
在java里搞的?
差点看成windows mobile了
0 请登录后投票
   发表时间:2010-01-15  
54五味子 写道
在java里搞的?
差点看成windows mobile了


不是 是android
0 请登录后投票
   发表时间:2010-01-15  
很好。我正在考虑怎么校验和修正用户的输入呢。
0 请登录后投票
   发表时间:2010-01-18  
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?
0 请登录后投票
   发表时间:2010-01-18  
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不懂你的意思? 详细点 可以么?
1 请登录后投票
   发表时间:2010-02-10  
这个我前段时间用到了,,,主要就是在联想搜索的时候我觉得会用到
0 请登录后投票
   发表时间:2010-02-10  
onTextChanged
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不会的 因为函数名为:onTextChanged

注意其"Changed"
0 请登录后投票
   发表时间:2010-02-10  
gryphone 写道
onTextChanged
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不会的 因为函数名为:onTextChanged

注意其"Changed"



咦?Changed如果是只在改变之后才调用,那必然是靠焦点来确定的吧,直接用焦点change的事件应该就行了吧~嘛,不过这样用直接封装好的watcher是要方便些~
0 请登录后投票
   发表时间:2010-02-10  
puhao7117441 写道
gryphone 写道
onTextChanged
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不会的 因为函数名为:onTextChanged

注意其"Changed"



咦?Changed如果是只在改变之后才调用,那必然是靠焦点来确定的吧,直接用焦点change的事件应该就行了吧~嘛,不过这样用直接封装好的watcher是要方便些~

什么意思? 有别的method可以监听其内容的变化 透露一下吧~~~
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics