首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用TextWatcher获取editText的旧值

使用TextWatcher获取EditText的旧值是通过监听EditText的文本变化来实现的。TextWatcher是一个接口,它定义了三个方法:beforeTextChanged、onTextChanged和afterTextChanged。

  1. beforeTextChanged(CharSequence s, int start, int count, int after):
    • 参数s是EditText中改变之前的文本内容。
    • 参数start是改变开始的位置。
    • 参数count是被改变的旧文本的长度。
    • 参数after是改变后新文本的长度。
  • onTextChanged(CharSequence s, int start, int before, int count):
    • 参数s是EditText中改变之后的文本内容。
    • 参数start是改变开始的位置。
    • 参数before是改变前旧文本的长度。
    • 参数count是改变后新文本的长度。
  • afterTextChanged(Editable s):
    • 参数s是EditText中最终的文本内容,可以通过s.toString()获取。

通过实现TextWatcher接口,并将其添加到EditText上,可以在这三个方法中获取到EditText的旧值和新值。以下是一个示例代码:

代码语言:txt
复制
EditText editText = findViewById(R.id.editText);

editText.addTextChangedListener(new TextWatcher() {
    private CharSequence oldText;

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        oldText = s;
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // 在文本改变时执行操作
    }

    @Override
    public void afterTextChanged(Editable s) {
        String newText = s.toString();
        // 使用旧值和新值进行比较或执行其他操作
    }
});

这样,你就可以在afterTextChanged方法中获取到EditText的旧值和新值,并进行相应的处理。

推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)可以用于实时音视频互动场景,提供了丰富的功能和接口,方便开发者快速构建音视频应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android EditTextView 实现带空格分隔输入(电话号码,银行卡)

电话号码输入框需求: 三位,七位后有空格 删除倒数第四,第八位会将空格也删除 使用TextWatcher When an object of a type is attached to an Editable..., its methods will be called when the text is changed.就是说,只要是一个可编辑文本设置了TextWatcher,当文本发生变化时,TextWatcher...其实不难,看了网上搜索到例子,思路绕了点,这边做一份自己记录 import android.text.Editable; import android.text.TextWatcher; import...10:18 */ public class PhoneNumberTextWatcher implements TextWatcher { EditText editText; int lastContentLength...()); //移动光标到最后面 editText.setSelection(sb.length()); } } 总结 以上所述是小编给大家介绍Android EditTextView

1.1K31

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

需求:有一个列表,列表中有一个edittext(只能输整形),外部有一个整形变量Int,每次改变列表中其中一项edittext时,外部Int都会改变。...n循环的话,想想就觉得这个算法很那啥,所以我想了另一个算法,每次改变其中一个item时,用总减去原itemedittext加上itemedittext新输入,这样复杂度为1,看着就很舒服...edtItem.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged...,传给外部(传做法我这没写,可以用观察者),然后外部总int – befour + now 就能获取到新总数。...这样写的话在beforeTextChanged方法中获取就不是复用前item数据,而是当前数据。

1.6K20

EditText在RecyclerView中解决方案

有时候,一个列表中Item会有EditText出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。...原来是因为这里是addTextWatcher,而不是setTextWatcher,也就是在复用时候,同一个EditText添加了多个TextWatcher,怪不得分数9还能出现在上面了。...解决方案 经过思考,由于RecyclerView复用机制,导致了以下关系存在: 一个ViewHolder——>一个EditText——>多个TextWatcher——>多个PicItem 这里我们可以将多个...TextWatcher始终绑定一个,那就需要在ViewHolder初始化里面操作,而不是在updateView,因为会多次bind,这就得到了以下关系: 一个ViewHolder——>一个EditText...总结 其实后来想想,如果能明白RecyclerView复用机制,EditTextTextWatcher机制,其实很容易解决这种问题,那么绕路了原因就是因为菜。哎,不多说了,学习去了。。

2.6K20

EditText属性和使用方法

一、EditText简介 EditText支持XML属性及相关方法见TextView表中介绍与输入有关属性和方法,其中比较重要一个属性是inputType,用于为EditText设置输入类型,其属性主要有以下一些...EditText还派生了如下两个子类。 n AutoCompleteTextView:带有自动完成功能EditText。由于该类通常需要与 Adapter结合使用,因此将会在下一章进行学习。...二、EditText示例 接下来通过一个简单示例程序来学习EditText常见用法。...同TextView示例程序一样,同样使用WidgetSample工程,在app/main/res/layout/目录下创建一个edittext_layout.xml文件,然后在其中填充如下代码片段: <...EditText示例程序就先到这里,关于其他使用方法建议大家自己进行练习。

2.3K90

详解EditText输入监听TextWatcher「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 日常开发中,我们可能会遇到需要监听EditText输入,比如判断输入是否为电话号码,获取输入数据长度来限定字数等。...这就需要监听EditText输入状态。...EditText使用TextWatcher实现类似按钮监听事件: 使用方法 效果图: MainActivity.java public class MainActivity extends...这样理解: 这个方法执行获取状态是在你输入前光标所在位置: 输入一个字符:s字符串也就是当前EditText内容为空,所以输出空; 开始处:0,司空见惯,...beforeTextChanged();在View改变之前执行,好比你输入了字符,系统先统计你输入信息,在这里可以提前获取动机。

2.7K31

关于ListView中包含EditText数据复用引起异常解决方案

概述 前几天测试提了一个bug,在ListView中添加留言信息,导致错乱问题。实际上就是ListView需要添加一个EditText,复用导致错乱问题,这个问题以前也遇到过。...诸如,ListView嵌套EditText、CheckBox等焦点问题都会出现复用错乱,其根源就是ViewHolder复用问题。 ?...说说上面的问题吧,保存item中EditText数据,导致数据复用时候都给设置了。...我们在最外层存了一个Map Map edItem; 监听每个Item输入(OnTextChangedListener),并在afterTextChanged()将保存到...赋值,也就是在OnTextChange方法里面,我们判断一下,如果用户操作是当前Item,我们就给Map赋值,否则不赋值,或者赋值为空

1.6K90

详解Recyclerview item中有EditText使用刷新遇到

由于工作项目的需要要对商品购买之后添加评价功能,于是自己仿淘宝评价效果图作为自己项目中评价效果图.但是在开发中遇到了一个大坑,就是在动态添加照片之后,刷新适配器时候.item中EditText...中文字发生了错乱现象.最后bug发现由于如下代码产生原因. /** * 这是一个EditText文本监听,因为在activity中要获取文本内容,所以设置了这个监听...* 于是,果断开启debug模式,最终确认确实是TextWatcher问题,由于调用了notifyDataSetChanged()方法,而导致EditText重绘, * 并且每次都走了textWatcher...afterTextChanged()方法.导致EditText内容发生了错乱现象...标记获取值,设置到控件上 这两种方法都能解决问题,只是方法一只适合条目较少情况,如果你条目较多就不太适用了希望我踩坑能给你有所帮助,大家一起进步谢谢!!!!

1.6K30
领券