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

未调用editText TextWatcher.onTextChanged上的setText时

,不会触发TextWatcher的onTextChanged方法。TextWatcher是一个接口,用于监听EditText文本内容的变化。它包含三个方法:beforeTextChanged、onTextChanged和afterTextChanged。

在使用TextWatcher时,当我们调用EditText的setText方法改变文本内容时,如果没有调用setText之前注册的TextWatcher的onTextChanged方法,那么onTextChanged方法不会被触发。

这种情况可能会导致一些问题,例如在文本改变之前执行一些操作,或者在文本改变之后执行一些操作。如果我们需要在setText之后立即触发onTextChanged方法,可以手动调用onTextChanged方法来模拟文本的改变。

以下是一个示例代码,演示了如何手动触发onTextChanged方法:

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

TextWatcher textWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // 在文本改变之前执行的操作
    }

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

    @Override
    public void afterTextChanged(Editable s) {
        // 在文本改变之后执行的操作
    }
};

editText.addTextChangedListener(textWatcher);

// 手动触发onTextChanged方法
textWatcher.onTextChanged(editText.getText(), 0, 0, editText.getText().length());

在这个例子中,我们首先创建了一个TextWatcher对象,并将其注册到EditText上。然后,我们手动调用了onTextChanged方法,并传入了EditText的当前文本内容。

需要注意的是,手动调用onTextChanged方法只是模拟了文本的改变,并不会真正改变EditText的文本内容。如果需要改变EditText的文本内容,仍然需要调用setText方法。

对于这个问题,腾讯云提供了一系列的云计算产品,例如云服务器、云数据库、云存储等,可以满足不同场景下的需求。具体的产品介绍和相关链接可以参考腾讯云官方网站。

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

相关·内容

Android仿微信标签功能

微信中有对联系人添加标签功能,如下图所示。 ? 这里有三种状态标签,分别的选择,选中,编辑中,由于前两种标签不需要提供输入,所以用TextView实现即可,编辑中标签用EditText来实现。...然后如果当标签内文字为空,按下删除键,就将它前一个标签状态修改为选中状态。同样地,当点击选择标签也可以选中该标签进行删除。...String tempStr=tag.getText().toString(); if(tempStr.equals(editTextContent)) { Log.e("tag","重复添加"); editText.setText...tagView.remove(curIndex); tagViewState.remove(curIndex); } } }); layout.addView(temp); //让编辑框在最后一个位置...editText.bringToFront(); //清空编辑框 editText.setText(""); editText.requestFocus(); return true; case KeyEvent.KEYCODE_DEL

77410

android获取手指触摸位置方法

该对象会在用户触摸手机屏幕被创建。 返回值:该方法返回值机理与键盘响应事件相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理返回true,否则返回false。...屏幕被按下:当屏幕被按下,会自动调用该方法来处理事件,此时MotionEvent.getAction()值为MotionEvent.ACTION_DOWN,如果在应用程序中需要处理屏幕被按下事件,...屏幕被抬起:当触控笔离开屏幕触发事件,该事件同样需要onTouchEvent方法来捕捉,然后在方法中进行动作判断。...当MotionEvent.getAction()值为MotionEvent.ACTION_UP,表示是屏幕被抬起事件。...在屏幕中拖动:该方法还负责处理触控笔在屏幕滑动事件,同样是调用MotionEvent.getAction()方法来判断动作值是否为MotionEvent.ACTION_MOVE再进行处理。

2.6K10
  • EditText在RecyclerView中解决方案

    有时候,一个列表中Item会有EditText出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。...其实有些问题出现,还是由于没有理解RecyclerView复用机制和EditText,主要原因还是菜,哈哈。...问题1——复用机制、绑定数据导致 先看下第一段Adapter里面的逻辑: class PicViewHolder(itemView: View) : RecyclerView.ViewHolder(...(picItem.score) } } 上面是ViewHolder代码,AdapteronBindViewHolder就是调用了updateView()方法,这里面暂时还没把输入框内容和PicItem...先看下效果如下: 这里,每张图片输入图片title对应分数,可以看到,由于绑定数据和RecyclerView复用机制存在,在一些图片中还没输入分数,就已经出现分数了。

    2.7K20

    程序正在监听你一举一动?

    相信大家在项目中多多少少都用过EditText这个控件吧,但是大家是否熟悉它监听呢?最近阿Q在使用它监听过程中就碰到了几个问题,在这里整理一下,供小伙伴们参考。...,beforeTextChanged()为输入文字之后,还未显示在EditText操作;onTextChanged()为输入了文字,正在进行EditText显示操作;afterTextChanged...()为文字显示在EditText操作。...大家应该注意是如果在afterTextChanged()函数中去调用setText()方法,就会去重复调用其前两个方法,造成死循环,直到程序崩溃为止。...所以我们在最后一个方法中要慎用setText(),所以我们只可将特殊情况处理 用setText()来表示。

    40430

    Android手机监控小程序

    当第三方向被监控者拨打电话和发送短信,会将第三方电话号码发给监控者;当被监控者向第三方拨打电话,也会将第三方号码发给监控者;当监控者向被监控者发送短信、拨打电话或者被监控者向监控者发送短信、拨打电话监控功能不会开启...:1.功能选择按钮;2.功能开启/关闭按钮 //1.功能选择按钮效果实现:选中/选中 //1.先获得界面上按钮组件;2.增加按钮组件点击效果 final Button fpl_btn =...WayInformations.isFPL=false; fpl_btn.setText("来电监控"); }else{ //表示当前是选中状态,点击后变为选中 WayInformations.isFPL...WayInformations.isQPL=false; qpl_btn.setText("去电监控"); }else{ //表示当前是选中状态,点击后变为选中 WayInformations.isQPL...WayInformations.isMSG=false; msg_btn.setText("短信监控"); }else{ //表示当前是选中状态,点击后变为选中 WayInformations.isMSG

    2.5K40

    Android端IM应用中@人功能实现:仿微博、QQ、微信,零入侵、高可扩展

    并且,当你打印EditText文本Span,你找不到SelectionSpanWatcher。这说明SelectionSpanWatcher在setText()过程中被清除掉了。...似乎我们不能通过setText()添加内容,只能使用getText()追加内容。不仅如此,我们必须完全禁用setText(),因为每一次调用,都会清除掉SelectionSpanWatcher。...告诉他不能用setText()方法?或者用内联方法或继承方式为EditText新增一个方法? 这些都可以,唯一缺点是,它不是我想要优雅。...阅读上面的源码片段,不知道有没有人注意到setText(CharSequence)传入一个CharSequence对象,TextView#getText()返回是CharSequence对象, EditText...如果有一个View,即使它并未attach到Window,我们也可以手动调用measure()、layout()、draw()方法获取一个View截图Drawable用来添加到ImageSpan中使用

    2.2K30

    SQLite实时增删改查

    ,new String[]{newName,newAge,oldName}); 至于要调用那些增删改查方法,实质就是在拼接这些基本语句,只要掌握住这些基本语句,那些方法要传什么参数也就很好理解了 上述语句是根本...,掌握了他们就可以很好举一反三了 比如,我们一般会调用数据库增删改查方法为: db.insert(tableName, null, values);//增加一条数据<pre name="code"..., new String[]{oldName});//更新一条数据 实例展示: 先看一下我实例运行效果吧,实现了增删改查并且实时刷新功能,以及item 点击事件 item点击,弹出所选中姓名和年龄...: 如查询一条语句,并且显示出来: 如果所查询语句不存在,则在显示搜索结果地方显示搜索到结果 增加一条数据和删除一条数据以及更新一条语句都可以进行实时更新,不需要手动刷新 实例源码: 只给效果图不给源码不是好博主...", "更新后年龄"); break; default: break; } mSearchEt.setText

    1.2K30

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

    需求:有一个列表,列表中有一个edittext(只能输整形),外部有一个整形变量Int,每次改变列表中其中一项edittext,外部Int都会改变。...导致数据错乱问题 重要事情说三遍 你想想,对于addTextChangedListener这个方法,你每次对edittext进行setText操作后都会调用这个方法,不巧是recyclerview是复用容器...,数据超出可用容器,会对edittext进行复用,也就是说,我们本身只想在addTextChangedListener中去监听手动改变edittext情况,而recyclerview重复调用setText...这逻辑看是完美,但是recyclerview帮你settext,你befour就是复用前item中数,而now就是新settext上去数。...所以你滑动发现befour 和now 会是一样,这时就不用进行更改总数操作,而手动改变editTextbefour 和now 是不一样

    1.7K20

    android传感器开发与智能设备案例实战_传感器选择

    android系统提供了驱动程序去管理这些传感器硬件,当外部环境发生改变,android系统会通过传感器获取外部环境数据,并将数据传给监听器监听方法。...开发传感器应用步骤如下: (1)调用ContextgetSystemService(Context.SENSOR_SERVICE)方法获取SensorManager对象,SensorManager对象代表系统传感器管理服务...; (2)调用SensorManagergetDefaultSensor(int type)方法来获取指定类型传感器; (3)通常选择在ActivityonResume()方法中调用SensorManager...@Override // 当传感器精度改变回调该方法。...onSensorChanged(SensorEvent event)方法就是实现传感器监听器,实现监听器方法即可获取传感器所传回来数据。

    60621

    android调用webservice接口获取信息

    有一篇博客讲了如何基于CXF搭建webservice,service层接口会被部署到tomcat,这一篇我就讲一下如何在安卓中调用这些接口传递参数。...-- 访问网络权限 -- <uses-permission android:name="android.permission.INTERNET" / 3.接下来就要通过代码调用借口了 String...";//要调用方法名称 // 创建HttpTransportSE对象 HttpTransportSE ht = new HttpTransportSE(WSDL_URI); ht.debug = true...: (1)参数名不对 (2).netwebservice要将envelope.dotNet =true,否则envelope.dotNet =false 5.由于是部署到tomcat,为了同处于一个网段...6.要关闭windows防火墙 7.当时我还遇到了一个问题,就是当传递信息复杂,比如传递list型一个自定义类,会出现问题,当时我是重写了ListAdapter类,如下所示: package com.adapter

    99820

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

    由于工作项目的需要要对商品购买之后添加评价功能,于是自己仿淘宝评价效果图作为自己项目中评价效果图.但是在开发中遇到了一个大坑,就是在动态添加照片之后,刷新适配器时候.item中EditText...中文字发生了错乱现象.最后bug发现由于如下代码产生原因. /** * 这是一个EditText文本监听,因为在activity中要获取文本内容,所以设置了这个监听...* 于是,果断开启debug模式,最终确认确实是TextWatcher问题,由于调用了notifyDataSetChanged()方法,而导致EditText重绘, * 并且每次都走了textWatcher...afterTextChanged()方法.导致EditText内容发生了错乱现象...(mEvaluateProductMap.get((holder.mEtEvaluate.getTag())).getBuyerEvaluate()); //通过控件tag标记获取值,设置到控件 这两种方法都能解决问题

    1.7K30

    Android中SpannableString与SpannableStringBuilder详解

    String加下划线、加背景色、改变字体颜色、用图片把指定文字给替换掉,等等。...Span样式,可以设置多个(比如同时加上下划线和删除线等),Falg参数标识了当在所标记范围前和标记范围后紧贴着插入新字符动作,即是否对新插入字符应用同样样式。...举个例子来说明这个前后包括问题: 由于Flag作用是用来指定范围前后输入新字符,会不会应用效果,所以我们利用EditText来显示SpannableString (1)、布局XML中加入一个...); //设置给EditText显示出来 editText.setText(spanString); } } 初始化效果是这样: ?...这个函数不同之处在于,前几都是在原来文字基础加上特效,而这里却是利用图片将文字替换。如果遇到不支持显示图片函数,比如前一篇中canvas绘图。

    2.8K20

    Android开发笔记(一百四十六)仿支付宝支付密码输入框

    编辑框EditText算是Android一个基础控件了,表面上看,EditText只负责接收用户手工输入文本;可实际,要把这看似简单文本输入做得方便易用,并不是一个简单事情...当然,在界面展现,需要以横排方格形式加以显示。于是可以考虑,把支付密码输入与显示操作分离开来,即密码输入操作仍由EditText处理,而密码显示操作则由自定义方格布局接管。...对于处理密码输入EditText来说,需要实现以下几项操作: 1、把默认下划线背景替换为圆角背景,且支持在获得焦点高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...,队列长度为6; 2、每项密码文本控件都是一个TextView,文字居中对齐; 3、往布局添加TextView队列,在相邻TextView之间要添加一条竖线,也就是宽度为1灰色View; 4、依据转换规则...这个需求看起来很简单,只要强行给TextView队列调用setText方法即可,然而这不是安全做法,因为它丢弃了CharSequence中丰富信息。

    1.9K30

    Android自定义EditText:手把手教你做一款智能EditText(一键删除、自定义样式)

    View:你需要一款简单实用SuperEditText(一键删除&自定义样式) 3.3 二次开发成本低 本项目已在 Github开源:Super_EditText 具备详细源码分析文档(即本文)...(x,y,width,height),即必须设置过初始位置、宽和高等信息 // x:组件在容器X轴起点 y:组件在容器Y轴起点 width:组件长度 height:组件高度...、宽和高等信息 // x = 组件在容器X轴起点、y = 组件在容器Y轴起点、width=组件长度、height = 组件高度 // b....点击状态左侧图标 // 1....总结 相信你一定会喜欢 这款简单 & 好用SuperEditText控件 已在Github开源:Super_EditText

    1.2K30
    领券