EditText限制输入的字符数并弹出Toast提示字数已达上限

大家对EditText这个控件并不陌生,它是一个可供我们输入文本内容的输入框。前些日子需要实现这样一个需求:限制EditText中可以输入的最大字符数为6,达到6时,用户每按一次软键盘就弹出一个Toast提示用户,并且无法再输入内容。就像下图的效果:

这里写图片描述

一开始我是直接在布局文件中在使用android:maxLength的属性将文本长度写死,然后再到代码中去监听,但是这样一来,监听也就失去了意义了,因为无论用户怎么输入,EditText中容纳的文本长度最长都是6,超过6时就不起作用了。所以我最终抛弃了这个写法,不再把文本长度写死了。现在就让我们看看具体怎么实现吧。

新建一个工程,在MainActivity的布局里放置一个EditText:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.lindroid.edittextchangedemo.MainActivity"><EditText
        android:id="@+id/edit"android:hint="请在此输入内容"android:layout_width="match_parent"android:layout_height="wrap_content" />
</RelativeLayout>

然后到代码中实现EditText中的输入监听事件,即接口TextWatcher中的方法。由于我们需要监听的是文本长度的变化,也就是文本输入过程中的变化,所以复写onTextChanged方法即可:

public class MainActivity extends AppCompatActivity {private EditText editText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);editText = (EditText) findViewById(R.id.edit);editText.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {if (s.length() > 6){ //判断EditText中输入的字符数是不是已经大于6editText.setText(s.toString().substring(0,6)); //设置EditText只显示前面6位字符editText.setSelection(6);//让光标移至末端Toast.makeText(MainActivity.this, "输入字数已达上限", Toast.LENGTH_SHORT).show();return;}}@Overridepublic void afterTextChanged(Editable s) {}});}
}

代码只有寥寥几行,首先我们需要判断用户输入的字符串长度是否已经超过了6(参数CharSequence 即EditText中输入的字符串),如果超过了6,我们就只显示前面6位字符,并弹出一条Toast告诉用户 “输入字数已达上限”,不能再输入了。同时,为了用户操作方便,比如可以删除刚刚输入的内容,我们将光标设置在文本的末端。

好了,整个Demo就这么简单,其实我们就是把用户输入的内容先拦截下来,筛选之后再显示到EditText上而已。

点击下载Demo

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

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

相关文章

关于微信小程序textarea组件 输入字数 > 限制字数 的bug

bug形成条件&#xff1a;如下图&#xff0c;当你需要给textarea组件添加一个统计输入字数的功能时&#xff0c;如果在手机上通过复制粘贴达到最大限制字数&#xff0c;这时候继续使用手机上的小键盘输入内容&#xff0c;就会出现输入字数大于限制字数的bug&#xff0c;而多出来…

GPT4限制被破解!ChatGPT实现超长文本处理的新方法

目录 前言 使用chat-gpt过程中有哪些痛点 1.无法理解人类情感和主观性 2.上下文丢失 3.约定被打断 那如何去解决这个痛点 Transformer&#xff08;RMT&#xff09;怎么去实现的 1.Transformer 模型 2.RMT模型 3.计算推理速率 4.渐进学习能力 总结 写到最后 大家好…

微信小程序-textarea字数统计与限制

第一步&#xff1a;参考官方文档《textarea小程序》 textarea多行输入框。该组件是原生组件&#xff0c;使用时请注意相关限制。 用到的属性&#xff1a; 属性说明maxlength最大输入长度&#xff0c;设置为 -1 的时候不限制最大长度minlength最小输入长度bindinput当键盘输入…

写代码调 Bug,OpenAI 发布最强 AI 对话系统 ChatGPT!

整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; GPT-3 发布的两年后&#xff0c;我们没等来它的亲弟弟 GPT-4&#xff0c;而是在今天亲眼见证了 OpenAI 带来了一种全新的 AI 聊天机器人——ChatGPT&#xff0c;也可以称之为是 GPT-3 家族里面的亲戚&a…

AI无法打败AI!ChatGPT检测器频繁冤枉无辜学生,竟有210万教师在用

【导读】被AI冤枉的你&#xff0c;还好吗&#xff1f; 当你被AI无辜扣上「作弊」的帽子&#xff0c;作何感想&#xff1f; 这件事恰恰发生在了一位高三学生Lucy Goetz身上。原本她写的一篇社会主义原创论文得了最高分。 但是&#xff0c;Turnitin公司的AI写作检测器竟说&…

如何在本地电脑上搭建AI人工智能绘画工具Stable Diffusion

目录 概述 操作环境 操作步骤 步骤一&#xff1a;安装Python。 步骤二&#xff1a;安装Git。 步骤三&#xff1a;使用git安装stable-diffusion-webui。 步骤四&#xff1a;下载面部重建插件GFPGAN。 步骤五&#xff1a;配置并运行webui-user.bat文件来自动安装所需文件。 步骤五…

AI能否识别出AI生成的内容?AI(ChatGPT)自己怎么说

关注了几天ChatGPT、New Bing等&#xff0c;我意识到将来我们所看的内容&#xff0c;必然有越来越高的比例都是AI生成的&#xff0c;而我们几乎无力分辨&#xff0c;但我有时候还是想分辨的&#xff0c;于是&#xff0c;我对如题的问题就特别好奇。 PS&#xff1a;已经有专注于…

让AI生成AI绘画提示词,OpenAI最新成果ChatGPT被网友玩坏了!还会写代码修bug作诗...

羿阁 发自 凹非寺量子位 | 公众号 QbitAI 一款新的聊天AI被网友们玩疯了。 能直接生成代码、会自动修复bug、在线问诊、模仿莎士比亚风格写作……各种话题都能hold住&#xff0c;它就是OpenAI刚刚推出的——ChatGPT。 有脑洞大开的网友甚至用它来设计游戏&#xff1a;先用ChatG…

关于AI和ChatGPT的使用,AI编程(AIGC),AI绘画(2)

AI绘画技术是指利用人工智能技术来创作、生成或修改图像、照片、插图、漫画等艺术品以及各种视觉效果。常见的AI绘画技术包括机器学习、深度学习和计算机视觉等领域的技术&#xff0c;通过训练神经网络模型来实现自动化地生成图像&#xff0c;其应用范围相当广泛&#xff0c;包…

ChatGPT到底有多厉害?看完你就知道了

hatGPT发布五天&#xff0c;有超过100万玩家&#xff0c;这是 Facebook花10个月才达到的里程碑&#xff0c;三个月1亿用户&#xff0c;这是Twitter花9个月创下的记录。 ChatGPT可以跟人做多轮聊天&#xff0c;能理解人&#xff0c;很可能通过图灵测试&#xff0c;他跟能创造新内…

OpenAI 最强对话模型 ChatGPT: 用户已破百万,落地将有几何

上周三&#xff0c;OpenAI 发布了对话语言模型 ChatGPT&#xff0c;并开放了免费试用。据 OpenAI 的 CEO Sam Altman 称&#xff0c;在短短 5 天的时间里&#xff0c;ChatGPT 就有了 100 万用户&#xff0c;而之前的 GPT-3 花了将近 24 个月才达到这个用户量。 在 OpenAI 给出的…

了解ChatGPT

输出结果与标注正确结果差距反哺调整参数&#xff1a; 无监督预训练和有监督微调 打磨模型的论文&#xff1a;https://arxiv.org/pdf/2203.02155.pdf 核心训练过程&#xff1a;

CHATGPT爆火,通用人工智能的奇点来临

自ChatGPT推出以来&#xff0c;不断地引爆热点&#xff0c;人们对自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;大模型的魔力感到赞叹&#xff0c;还有人探讨通用人工智能&#xff08;Artificial general intelligence&#xff0c;AGI&#xff09;的奇…

当ChatGPT遇见Python

在如火如荼的 ChatGPT 大潮当中&#xff0c;已经衍生出了各种各样的周边产品。 Python 作为著名的万金油工具&#xff0c;怎么能没有它的身影呢。今天我们就介绍两种通过 Python 调用 ChatGPT 的方法&#xff0c;一起来看看吧~ chatgpt-wrapper 这是一个开源在 GitHub 上的项目…

ChatGPT科研绘图(基于python)【chatgpt使用指南-python绘图】

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; 文章目录 背景chatgpt操作结果 chatgpt可以通过编写Python、matlab等代码实现绘图功能。经过试验&#xff0c;其中以Python最为高效准确&#xff0c;基本不会出现报错。本文以Python绘图为例进行辅助绘图&#xff…

【ChatGPT】全网首发第一本全面介绍 ChatGPT 的书:《 ChatGPT 和人工智能革命 》/ 作者:禅与计算机程序设计艺术 ChatGPT

This Image was drawn By Stable Diffusion 【ChatGPT】《 ChatGPT 和人工智能革命 》/ 作者:禅与计算机程序设计艺术&ChatGPT 目录

【关于ChatGPT的30个问题】11、ChatGPT是否会替代人类客服?/ By 禅与计算机程序设计艺术

11、ChatGPT是否会替代人类客服? 目录 11、ChatGPT是否会替代人类客服? ChatGPT是否会替代人类客服?

【关于ChatGPT的30个问题】12、ChatGPT的训练数据集是什么?/ By 禅与计算机程序设计艺术

12、ChatGPT的训练数据集是什么? 目录 12、ChatGPT的训练数据集是什么? ChatGPT的训练数据集是什么?

非常全面:72页ChatGPT研究框架(2023)ppt(附下载)

本文来源&#xff1a;国泰君安证券、图灵人工智能 国泰君安证券对于ChatGPT进行深入研究&#xff0c;从其市场概况、技术路径、行业进程、商业化四个方面逐一展开说明。 &#xff08;本文共72页&#xff09; 文末提供下载。 全文获取方法&#xff1a; 关注下面的公众号&#xf…

【关于ChatGPT的30个问题】13、ChatGPT是否收到了任何官方的打击?/ By 禅与计算机程序设计艺术

13、ChatGPT是否收到了任何官方的打击? 目录 13、ChatGPT是否收到了任何官方的打击?