android addtextchangedlistener参数,【Android】关于addTextChangedListener()方法的上机记录...

自己在学习控件的时候,学到关于EditText的addTextChangedListener()方法,想做一个类似发微博限制字数为140那样的功能,以此文记录上机过程中发现的一些问题。在做这个的时候,是第五节课视频刚提到addTextChangedListener()这个方法,所以以下仅仅是我自己上机的记录,不是课程的内容记录。

addTextChangedListener()初识

f976c677189a

addTextChangedListener()是TextView的方法,

EditText继承自TextView,当然也有这个方法。

从官方的介绍可知,添加了TextWatcher后,

每当TextView的文本改变时,TextWatcher的那几个方法就会被调用。

另外一句,是关于在afterTextChanged(Editable)中setTest()的一些问题,

也就是在监测"改变后"状态的方法又去改变那个文本,这样想想都容易出问题,

不是我目前关心的内容,所以忽略。

关于TextWatcher那几个方法的解释

它那几个方法,分别监测了文本"改变前"、"改变时"、"改变中"三种状态。

editText.addTextChangedListener(new TextWatcher() {

@Override

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

//这个方法被调用,说明在s字符串中,从start位置开始的count个字符即将被长度为after的新文本所取代。在这个方法里面改变s,会报错。

}

@Override

public void onTextChanged(CharSequence s, int start, int before, int count) {

//这个方法被调用,说明在s字符串中,从start位置开始的count个字符刚刚取代了长度为before的旧文本。在这个方法里面改变s,会报错。

}

@Override

public void afterTextChanged(Editable s) {

//这个方法被调用,那么说明s字符串的某个地方已经被改变。

}

});

beforeTextChanged()&onTextChanged()

具体解释一下,这里其实有点绕,最好自己上机观察。

1.增加字符的操作

例如,原来有4个字,我再输入2个字。

beforeTextChanged:start为4、count为0、after为2;

onTextChanged:start为4、before为0、count为2。

对于beforeTextChanged(),是从第4个字符的位置开始,

因为是增加操作,没有字符会被新字符替代,即0个字符即将被2个字符取代;

对于onTextChanged,是从第4个字符的位置开始,

因为是增加操作,没有字符会被新字符替代,即2个字符刚刚取代了长度为0的旧文本。

2.删除字符的操作

因为按←进行删除操作,只会一个个计算,效果不明显,我就直接剪切了3个字符。

beforeTextChanged:start为3、count为3、after为0;

onTextChanged:start为3、before为3、count为0。

对于beforeTextChanged(),是从第3个字符的位置开始,

因为是删除操作,取代原来字符的“新文本”长度为0,即3个字符即将被0个字符取代;

对于onTextChanged,是从第3个字符的位置开始,

因为是删除操作,取代原来字符的“新文本”长度为0,即0个字符刚刚取代了长度为3的旧文本。

多留一些数据,留着自己研究吧

操作

beforeTextChanged (s,start,count,after)

onTextChanged (s,start,before,count)

从无到有输入5个字符

0-0-5

0-0-5

5个字符,再输入3个字符,变8个字符

5-0-3

5-0-3

8个字符,删掉4个,剩4个字符

4-4-0

4-4-0

4个字符,删掉2个,剩2个字符

2-2-0

2-2-0

2个字符,输入3个,变5个字符

2-0-3

2-0-3

回到微博那个140字的功能

经过上面两个方法各种参数的折腾后,

我发现其实想要输入后有多少字,

直接用public void afterTextChanged(Editable s)就行了。

核心代码:

@Override

public void afterTextChanged(Editable s) {

int textSum = s.toString().length();

if(textSum<130){

textView.setText("");

}

if(textSum>=130&&textSum<=140){

textView.setText(String.valueOf(140-textSum));

textView.setTextColor(getResources().getColor(R.color.gray));

}

if(textSum>140){

textView.setText(String.valueOf(140-textSum));

textView.setTextColor(getResources().getColor(R.color.red));

}

}

上机的Gif(太大了,压缩过度):

f976c677189a

看不了的点击这个链接

这个代码当然是烂,之后我再学习一下别人的吧。

继承接下来的课程,暂记录到这里吧。

参考资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙系统打通iOS,库克真的做到了!正式官宣确认截胡鸿蒙OS系统:软硬件生态全打通...

【4月25日讯】相信大家都知道&#xff0c;自从苹果正式举办完春季新品发布会以后&#xff0c;很多网友们都纷纷吐槽到“苹果的黑科技就是以换色为本&#xff0c;iPhone12推出紫色版本&#xff0c;而iMac也变成了彩虹色&#xff0c;很好的继承了诺基亚“科技以换壳为本”理念”&…

html标签中的文本框的值,HTML文本框的值分配给div标签的标题

线2&#xff1a;#msdhoni我want-什么&#xff0c;当用户输入一些东西在文本框(以行1)应该成为div的标题(在第2行)点击botton(在第1行)。其实想要用代码中的文本输入替换#msdhoni。jQuery代码我米使用&#xff1a;(请建议在这段代码的变化&#xff0c;使这成为可能)String.proto…

快速了解Java集合框架

1. 简介 JDK1.2 引入了 Java 集合框架&#xff0c;包含一组数据结构。与数组不同&#xff0c;这些数据结构的存储空间会随着元素添加动态增加。其中&#xff0c;一些支持添加重复元素另一些不支持&#xff0c;一些支持 null&#xff0c;一些能自动升序打印元素。 所有这些数据…

偷用计算机作文,偷玩电脑作文5篇

偷玩电脑作文5篇篇一&#xff1a;偷玩电脑的滋味星期天&#xff0c;我在家里看电视&#xff0c;妈妈很晚才回来&#xff0c;我只好在家等&#xff0c;看了一会&#xff0c;电视节目没了&#xff0c;我把电视关掉&#xff0c;看了会书消磨时间&#xff0c;我又写了会作业&#x…

钢铁厂计算机相关岗位需要倒班吗,钢铁厂工人倒班的三个阶段,请对号入座!...

原标题&#xff1a;钢铁厂工人倒班的三个阶段&#xff0c;请对号入座&#xff01;刚开始钢铁厂倒班工作&#xff0c;感觉倒班好&#xff0c;夜班有啥&#xff0c;通宵可以感受夜的宁静&#xff0c;深夜闲暇之余还可以仰望星空&#xff0c;思考人生&#xff0c;白天自由时间多&a…

计算机文化基础B卷期末,《计算机文化基础》上机试卷B

课程代码&#xff1a; 座位号&#xff1a;新疆大学2008- 2009 学年度第一学期期末考试《计算机文化基础》上机试卷姓名: 学号: 专业:学院: 班级:2008年 12月注意事项&#xff1a;在试卷上必须注明学号、姓名否则成绩以“零”分计算完成以下各题后&#xff0c;将应用程序窗口最小…

win7查看 本地计算机策略,win7系统本地组策略编辑器打不开怎么办

本地组策略编辑器是win7系统的管理控制台&#xff0c;通过本地组策略编辑器可以禁止通过本地组策略、禁止对某些任务使用脚本等设置。有些win7 64位系统的用户发现&#xff0c;本地组组策略编辑器打不开了&#xff0c;这是怎么回事呢&#xff1f;会出现这种情况很有可能是控制台…

计算机打字测速,电脑的打字测速软件分享

对于电脑工作人员来说&#xff0c;打字是我们每天都会接触的&#xff0c;作为网站编辑来说&#xff0c;每天就是打字&#xff0c;打字&#xff0c;打字&#xff0c;因此&#xff0c;打字速度一定不能慢&#xff0c;不然就会大大的影响工作效率。下面是学习啦小编为大家整理的关…

2012服务器系统安装iis,Windows Server 2012服务器管理系统安装配置IIS8.5教程

IIS8.0是windows Server2012自带的服务器管理系统&#xff0c;和以往不同&#xff0c;IIS8.0安装和操作都比较简单&#xff0c;界面很简洁&#xff0c;安装也很迅速。今天我们重点完整的演示下windows server 2012上面配置IIS8.5的详细安装。windows server 2012上面配置IIS8.5…

Java9个异常处理的最佳实践

在本文中&#xff0c;作者介绍了9个处理异常的最佳方法与实践&#xff0c;以举例与代码展示结合的方式&#xff0c;让开发者更好的理解这9种方式&#xff0c;并指导读者在不同情况下选择不同的异常处理方式。 以下为译文&#xff1a; Java中的异常处理不是一个简单的话题。初学…

小白零基础怎么学习Java?不要慌

近年来&#xff0c;Java视频逐渐取代了“书籍”的作用&#xff0c;许多初学者已经将视频视为最重要的学习方式。然而&#xff0c;通过对java自学的长期观察和研究&#xff0c;我们发现书籍和视频都有自己的作用。阅读和观看视频对于Java学习者来说是不可或缺的。但是&#xff0…

服务器的虚拟内存怎么调,服务器的虚拟内存怎么调才好

服务器的虚拟内存怎么调才好 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。开启弹性云服务器的虚拟内存后&#xff0c;会导致硬盘…

Java小白零基础学习如何突破自己的方法

有很多Java程序员在学习之初经常对如何学习感到困惑。本文将分析如何学习Java编程&#xff0c;并相信它可以帮助处于混乱状态的初学者。 I.培养兴趣 兴趣是可以让你继续前进的动力。如果你只是把这个程序写成谋生手段&#xff0c;那么你将会非常疲惫&#xff0c;更关心这个行…

修改epo服务器 gps,epo

EPO是促红细胞生成素(Erythropoietin)的英文简称。人体中的促红细胞生成素是由肾皮质肾小管周围间质细胞和肝脏分泌的一种激素样物质&#xff0c;能够促进红细胞生成。服用促红细胞生成素可以使患肾病贫血的病人增加血流比溶度(即增加血液中红细胞百分比)。人体缺氧时&#xff…

ug使用服务器系统,ug服务器设置教程视频

ug服务器设置教程视频 内容精选换一换本教程旨在演示使用GDS(General Data Service)工具将远端服务器上的数据导入GaussDB(DWS)中的办法&#xff0c;帮助您学习如何通过GDS进行数据导入的方法。在本教程中&#xff0c;您将&#xff1a;生成本教程需要使用的CSV格式的数据源文件…

目前Java编程语言最流行的7个框架,你了解多少?

小编有看到过很多文章写Java快要被取代了&#xff0c;但到目前为止Java软件开发也一直坚持主导地位。毫无疑问&#xff0c;Java是目前最流行的编程语言之一&#xff0c;小编今天总结了2018年流行的框架&#xff0c;相信2019年也不会让我们失望。 1&#xff0c;SpringMVC 在中国…

小白零基础学习Java开发入门教程奉上,希望对你有所帮助!

“持久和新”是编程语言方面对Java的适当评估。 想要进入互联网行业&#xff0c;想转向编程&#xff0c;Java无疑是一个非常普遍的选择。 但是&#xff0c;Java毕竟是一种编程语言&#xff0c;并且仍然存在一些技术障碍。如果你想开始&#xff0c;有一些困难&#xff0c;特别…

JAVA构架之并发编程的一些总结

所谓并发编程是指在一台处理器上"同时"处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 一、程序与进程 程序是一组有序指令的集合&#xff0c;是一种静态的概念。进程是程序的一次执行&#xff0c;属于一种动态的概念。在多道程序环境…

Java技术学习心得

1. 学习之路&#xff0c;不走弯路&#xff0c;就是捷径 软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此&#xff0c;没有捷径可走。所有的人都期盼成功&#xff0c;但是并不是每个人都会为走向 成功全力以赴。人们在渴望成功的同时&#xff0c;也渴望能…

做到年薪50W是如何学习Java架构技术的?

工作年时间长&#xff0c;经验比较丰富 他们的共同特点是&#xff1a;10 年以上的工作经验&#xff0c;在大公司当过螺丝钉&#xff0c;也在创业公司做过技术 leader&#xff0c;有过一两段不算成功的创业经历。 这样的程序员无论是去 BAT 还是去创业公司&#xff0c;都能拿到…