`
gryphone
  • 浏览: 433623 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

EditText 监听 Text 的 改动

阅读更多
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() 就会被调用!
分享到:
评论
11 楼 gryphone 2010-02-11  
onTextChanged
puhao7117441 写道
gryphone 写道
puhao7117441 写道
gryphone 写道
onTextChanged
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不会的 因为函数名为:onTextChanged

注意其"Changed"



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

什么意思? 有别的method可以监听其内容的变化 透露一下吧~~~


啊?我也不是很清楚哦,才开始学Android,不过想想得话,我觉得哈,个人意见:
用一个字段记录当前Edit里面的文本,假设为old,然后用Edit的onFocusChange()事件,来取得新每次Focus变了之后的文本,假设为new,把new和old一比就知道文本有没有变了……
要对输入每个字符都要检测的话就用onKeyDown那个就行了吧……

就是有点麻烦……


没关系 因为:
onTextChanged() 当EditText的内容有改变才会回调这个method 否则是不会被调用的!
10 楼 puhao7117441 2010-02-10  
gryphone 写道
puhao7117441 写道
gryphone 写道
onTextChanged
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不会的 因为函数名为:onTextChanged

注意其"Changed"



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

什么意思? 有别的method可以监听其内容的变化 透露一下吧~~~


啊?我也不是很清楚哦,才开始学Android,不过想想得话,我觉得哈,个人意见:
用一个字段记录当前Edit里面的文本,假设为old,然后用Edit的onFocusChange()事件,来取得新每次Focus变了之后的文本,假设为new,把new和old一比就知道文本有没有变了……
要对输入每个字符都要检测的话就用onKeyDown那个就行了吧……

就是有点麻烦……
9 楼 gryphone 2010-02-10  
puhao7117441 写道
gryphone 写道
onTextChanged
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不会的 因为函数名为:onTextChanged

注意其"Changed"



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

什么意思? 有别的method可以监听其内容的变化 透露一下吧~~~
8 楼 puhao7117441 2010-02-10  
gryphone 写道
onTextChanged
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不会的 因为函数名为:onTextChanged

注意其"Changed"



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


不会的 因为函数名为:onTextChanged

注意其"Changed"
6 楼 wafj1984 2010-02-10  
这个我前段时间用到了,,,主要就是在联想搜索的时候我觉得会用到
5 楼 gryphone 2010-01-18  
1986zzrobin 写道
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?


不懂你的意思? 详细点 可以么?
4 楼 1986zzrobin 2010-01-18  
这样写不是每次改动全会由事件触发吗? 何必不做个焦点离开事件在触发呢?
3 楼 ncowboy 2010-01-15  
很好。我正在考虑怎么校验和修正用户的输入呢。
2 楼 gryphone 2010-01-15  
54五味子 写道
在java里搞的?
差点看成windows mobile了


不是 是android
1 楼 54五味子 2010-01-14  
在java里搞的?
差点看成windows mobile了

相关推荐

    EditText监听粘贴内容

    EditText禁止粘贴内容输入,修改粘贴内容, 参考: 禁止EditText 输入粘贴版内容 http://blog.csdn.net/xiaobijia/article/details/41081595

    EditText监听输入完成

    在许多场景下,我们可能需要监听用户在`EditText`中的输入行为,特别是在用户完成输入后执行某些操作,比如验证输入内容、提交表单或者进行其他业务逻辑处理。本文将详细介绍如何在Android应用中实现`EditText`的...

    同步列表选中项及EditText监听

    在Android开发中,"同步列表选中项及EditText监听"是一个常见的交互设计,涉及到多个UI组件的协同工作和事件处理。下面将详细讲解这个主题所涵盖的知识点。 首先,我们来看"列表选中项同步"。这通常指的是在一个...

    多个EditText监听

    注册时每个EditText里面都输入内容后 注册按钮才能点击

    Android 监听EditText变化

    为了能够实时响应`EditText`中的文本变化,开发者通常会使用`TextWatcher`监听器。`TextWatcher`是一个接口,提供了三个方法,帮助我们监控`EditText`中文字的添加、删除和替换操作。下面我们将详细探讨`EditText`...

    EditText实时监听,附带switch控件

    在Android开发中,`EditText`是用户输入文本的常见组件,而实时监听`EditText`的输入变化是一项常用功能,能够帮助开发者及时响应用户的输入并进行相应的处理。在本例中,我们将探讨如何实现`EditText`的实时监听...

    editText监听实现

    `EditText`的监听主要涉及两个方面:文本变化监听和键盘事件监听。下面将详细阐述这两个方面的实现方法。 一、文本变化监听 1. TextWatcher接口 `TextWatcher` 是一个接口,包含三个方法,用于监听`EditText`中的...

    Android EditText 监听用户输入完成的实例

    但是EditText本身没有提供一个直接的方式来监听用户完成输入的事件。开发者需要通过编程的方式实现这一监听功能,以便在用户输入完成后执行特定的操作。 在Android开发中,实现EditText监听用户输入完成的功能通常...

    EditText输入¥监听 删除及添加

    首先,我们需要创建一个 `EditText` 并为其设置监听器。`TextWatcher` 是一个接口,它包含三个方法:`beforeTextChanged`、`onTextChanged` 和 `afterTextChanged`。这三个方法分别在文本改变前、改变中和改变后被...

    Android中ListView每个条目中有EditText,右下角监听现实剩余输入数字

    在创建EditText时,我们可以为其设置一个TextWatcher监听器,监听文本的变化。TextWatcher提供了三个方法:beforeTextChanged(), onTextChanged() 和 afterTextChanged()。在这里,我们主要关心afterTextChanged(),...

    android中Editext监听工具类

    本篇文章将深入探讨如何创建一个`EditText`监听工具类,以实现多个`EditText`的统一管理和高效监听。 首先,我们需要了解`TextWatcher`接口。`TextWatcher`是Android提供的一个接口,它包含三个方法:`...

    Edittext 文本监听 16进制

    这个例子是关于android中EditText的监听事件addTextChangedListener的。 需求:要求EditText只能输入十六进制数据,并且使hex间自动空格。 如有严重BUG或者不完善,欢迎小伙伴们提出~

    RecyclerView中监听EditText变化的BUG的解决方法

    RecyclerView中监听EditText变化的BUG的解决方法 本文主要介绍了RecyclerView中监听EditText变化的BUG的解决方法,该问题是由于RecyclerView的特性导致的数据错乱问题。 首先,需要了解的是,在RecyclerView中,...

    Android Studio中Edittext监听回车事件,捕获手机和扫描枪的Enter键的点击事件

    Android Studio监听回车事件,捕获手机和扫描枪的Enter键的点击事件 package com.example.mynewtest; import android.content.Context; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity;...

    事件监听器-EditText的事件监听

    本篇将详细介绍EditText的事件监听。 首先,我们来看EditText。EditText是Android系统中用于接收用户文本输入的控件。为了对EditText的事件进行监听,我们需要使用`OnKeyListener`接口。这个接口定义了一个方法`...

    EditText监听方法,实时的判断输入多少字符

    最近在写一个小项目,其中有一点用到了显示EditText中输入了多少个字符,像微博中显示剩余多少字符的功能。在EditText提供了一个方法addTextChangedListener实现对输入文本的监控。下边是我自己写的一个Demo。 代码...

    Android编程实现监听EditText变化的方法

    但是,`EditText`继承自`TextView`,它提供了一个`addTextChangedListener(TextWatcher watcher)`方法,通过这个方法我们可以添加一个`TextWatcher`监听器来监听`EditText`的内容变化。 `TextWatcher`是一个接口,...

    Android EditText监听回车键并处理两次回调问题

    【Android EditText 监听回车键与处理回调问题详解】 在Android开发中,尤其是在登录、搜索等场景中,用户在EditText中输入完成后按下回车键触发特定操作是一种常见的交互方式,能够提供良好的用户体验。然而,有时...

Global site tag (gtag.js) - Google Analytics