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,一经查实,立即删除!

相关文章

android 开源 数据库,Android开源数据库框架-LitePal的使用

简介LitePal是一款开源的Android数据库框架&#xff0c;采用了关系映射的模式。LitePal在github上的项目地址&#xff1a;github.com/LitePalFram…配置LitePaldependencies {....compile org.litepal.android:core:1.5.1}复制代码在app/src/main 目录下新建目录assets&#xf…

signature=095ed28e83b68620637b3a67436b0f8f,SMB 3.1.1 Encryption in Windows 10

SMB 3.1.1 Encryption in Windows 1009/09/201513 分钟可看完本文内容SMB 3 encryption offers data packet confidentiality and prevents an attacker from both tampering with and eavesdropping on any data packet. Encryption has been enhanced in SMB 3.1.1. The ciph…

鸿蒙系统打通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;一些能自动升序打印元素。 所有这些数据…

html分类页面,CSS网页设计 把HTML标记分类

p、h1、或div等元素常常称为块级元素&#xff0c;这些元素显示为一块内容&#xff1b;Strong,span等元素称为行内元素&#xff0c;它们的内容显示在行中&#xff0c;即“行内框”。(可以使用displayblock将行内元素转换成块元素&#xff0c;displaynone表示生成的元素根本没有框…

html点击图片产生事件,jquery – 图像单击HTML5 Canvas中的事件

我有一个HTML5画布,我在其中添加了一个图像,我想调用图像的点击事件,但事件不会触发.我正在写一个HTML代码和jqmobile的一些代码This text is displayed if your browser does not shown.$(function () {var ctx document.getElementById("canvas1").getContext(&qu…

html代码里面换图片不显示不出来了,微擎 Ueditor 百度编辑器 替换图片不显示问题...

问题&#xff1a;最近在使用微擎添加公众号平台文章时&#xff0c;上传图片可以显示&#xff0c;但是点击 html(编辑器的按钮,可以显示html代码) 时出现图片不显示问题。我是用的135编辑器挑选的图文模板&#xff0c;我替换完模板中的图片后&#xff0c;图片的链接失效&#xf…

找通项公式在线计算机,在线硬盘分区计算器工具

一、什么是分区&#xff1f;分区从实质上说就是对硬盘的一种格式化。当我们创建分区时&#xff0c;就已经设置好了硬盘的各项物理参数&#xff0c;指定了硬盘主引导记录(即Master Boot Record&#xff0c;一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系…

湖南大学计算机网络实验,湖南大学《计算机网络》实验报告

实验一应用协议与数据包分析实验(使用Wireshark)一、实验目的通过本实验&#xff0c;熟练掌握Wireshark的操作和使用&#xff0c;学习对HTTP协议进行分析。二、实验内容1&#xff0e;HTTP 协议简介HTTP 是超文本传输协议(Hyper Text Transfer Protocol)的缩写&#xff0c;用于W…

html中dl标签和ul标签,html中dl,dt,dd,ul,li,ol标签区别和使用

html中dl,dt,dd,ul,li,ol标签区别和使用时间&#xff1a;2013-04-12 21:48 来源:未知 | 作者:易享学习网| 本文已影响 人ul: unordered listsol: ordered listsli: Listsol 有序列表:………………表现为&#xff1a;1……2……3……ul 无序列表&#xff0c;表现为li前面是大圆点…

国家开放计算机应用基础模块1答案,完整word版,《国家开放大学学习指南》计算机应用基础网上作业答案(完整版)...

作业1(本次作业覆盖“模块1 Windows 7 操作系统”的内容&#xff0c;请在学完模块1后完成本次作业&#xff0c;要求第8周内完成。满分为40分&#xff0c;其中基础知识部分10分&#xff0c;Windows 7部分20分&#xff0c;网络部分10分。单选题50道、填空题50道)基础知识选择题(共…

webview 本地 html空白,WKWebView加载本地html遇到的坑与解决办法

1、字体变小解决办法Swiftlet headerString ""self.wkwebview.loadHTMLString(headerString.appending(html), baseURL: nil)Objective-CNSString *headerString "";[strongSelf.contentWebView loadHTMLString:[headerString stringByAppendingString:m…

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

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

中科院计算机学院王宏,王宏-中国科学院大学-UCAS

发表论文(1) SIL verification for SRS with diverse redundancy based on system degradation using reliability block diagram, Reliability Engineering and System Safety, 2017, 第 2 作者(2) New considerations for SIL verification of functional safety fieldbus co…

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

原标题&#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;会出现这种情况很有可能是控制台…

苹果x计算机按键有声音吗,iPhoneX拍照总有声音怎么办?拨动静音键即可关闭拍照声!...

我们知道&#xff0c;国行iPhoneX拍照默认是有声音的&#xff0c;完成拍照一瞬间会发出发发出咔的拍照音。不过&#xff0c;我们有时候在夜间或者安静环境下&#xff0c;想要静音拍照&#xff0c;那么该怎么做呢。下面小编详细介绍下iPhoneX相机声音关闭方法&#xff0c;希望对…

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

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