处理Edittext限制字数提示,以及回车换行功能。

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

首先是edittext布局文件

    <EditText
        android:inputType="text"
        android:imeOptions="actionDone"
        android:id="@+id/ets"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

 

首先动态加上俩行代码,为了防止edittext输入不换行问题:

ets.setHorizontallyScrolling(false);
ets.setMaxLines(Integer.MAX_VALUE);

然后我们定义输入内容个数:

final int length = 40;

然后通过edittext输入监听:

        ets.addTextChangedListener(new TextWatcher() {
            private CharSequence temp;
            private int editStart ;
            private int editEnd ;
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int start, int after, int count) {
                temp = charSequence.toString().trim();
                if(temp.length()>0) {
                    numBefore=temp.length();//已经输入的字符长度
                    numAfter=length-temp.length();
                    //最终显示的字符数
                    tv_times.setText((numBefore)+"");
                    if (temp.length() > length){
                        Toast.makeText(MainActivity.this, "你输入得字数超过限制", Toast.LENGTH_SHORT).show();
                    }
                }else {
                    //最终显示的字符数
                    tv_times.setText("0");
                }
            }

            @Override
            public void afterTextChanged(Editable editable) {
                try {
                    editStart = ets.getSelectionStart();//开始的字符位置
                    editEnd = ets.getSelectionEnd();//结束的字符位置
                    if (temp.length() >length) {
                        editable.delete(editStart-1, editEnd);//删除
                        int tempSelection = editStart;
                        ets.removeTextChangedListener(this);
                        ets.setText(editable);
                        ets.addTextChangedListener(this);
                        ets.setSelection(tempSelection);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        });

ok,这样实现了我们想要得效果咯。

基于 Datawhale 开源量化投资学习指南(10):基于 LightGBM 的量化选股 通过本篇文章,我们深入探索了如何运用 LightGBM 机器学习模型实现量化选股。首先,我们通过获取股票的历史数据,进行特征工程和标签制作,将选股问题转化为一个分类问题。接着,我们使用 LightGBM 训练模型,并在验证集和测试集中评估了模型的表现。该选股策略的核心在于结合机器学习算法,从历史数据中寻找能够捕捉股票短期涨跌的关键特征,从而为投资者提供辅助决策支持。虽然本文的模型取得了一定的效果,但这只是量化投资领域的一小部分。 阅读详情

相关推荐

AI 编程助手新玩法:用 Claude Code 一键调用国产大模型(DeepSeek/Kimi/GLM 对比)

本文深入评测了Claude Code与三大国产大模型(DeepSeek、Kimi、智谱GLM)的集成效果,详细对比了它们在代码生成质量、响应速度和特殊场景支持度等方面的差异。通过实测数据和实战技巧,帮助开发者选择最适合的AI编程助手组合,提升开发效率。

weixin_30955617的博客 441

android editext设置超出字数后自定换行

<EditText android:gravity="top" android:scrollHorizontally="false" android:inputType="textMultiLine" android:background=

前人挖坑,后人种(pen) 2481

Labview实现服务器(server)与多客户端(clients)通信

服务器可以接收多个客户端发送的消息,并显示消息来源。 服务器可以发送消息到指定客户端 客户端可以自动连接服务器,断连后重连 客户端可以发送消息到服务器,可接收服务器消息 类似框架可以用做中央服务器及客户端项目

u013809089的博客 7914

android EditText 自动换行 设置

项目当中有提交评论和反馈的功能 用的是EditText做为文本编辑器,但是默认的EditText当你输入的内容过多超出屏幕一行 EditText也不会自动换行的,下面给出一个简单的解决办法 EditText editText = new EditText(this); //设置EditText的显示方式为多行文本输入 editText.setInputTyp

八戒卖萌的博客 2万+

Android EditText 自动换行

在上述代码中,我们将 android:inputType 属性设置为 textMultiLine,这会将 EditText 设置为多行文本输入。然后,您可以通过 android:maxLines 属性设置 EditText 的最大行数。

七夜的博客 1661

EditText键盘回车下一行

在做登录的时候会用到edittext输入用户名之后点击键盘上的回车键跳转到下一个edittext输入密码,但是当设置了 android:imeOptions="actionNext"之后,点击回车并没有跳到下一个edittext而是换行了,这是因为还要同时设置android:inputType="text"也就是说这两个要同时使用,相同用法当完成时设置android:inputType="textP

孤独的冥王星 2972

关于EditText点击enter键会出现换行的解决方式

情形1: 如图        解释:  进入页面是左图的效果, 但是当连续多次点击enter键, 就出现了右图的效果, 即edittext出现了多行 , 但是一般来说账号密码这些页面的Edit只需要一行就足够了 ,  所以出现这种情形用户体验是很糟糕的 解决方案: 在EditText的布局中, 添加一个属性即可 android:maxLines="1" 情形2

jfwqrzy的博客 5399

使用TextView/EditText应该注意的地方

 EditText小记 http://www.cnblogs.com/endure/p/3690443.html Android字体阴影 strings.xml文件定义字符串中的标签 Android TextView 自动换行问题 关于android软键盘enter键的替换与事件监听 软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有norm...

djun100的专栏 214

android ui 参数传递,android ui界面设计参数讲解

ANDROIDUI界面设计参数讲解ANDROIDLAYOUT_WIDTH设置组件的宽度ANDROIDLAYOUT_HEIGHT设置组件的高度ANDROIDID给组件定义一个ID值,供后期使用ANDROIDBACKGROUND设置组件的背景颜色或背景图片ANDROIDTEXT设置组件的显示文字ANDROIDTEXTCOLOR设置组件的显示文字的颜色ANDROIDLAYOUT_BELOW组件在参考组件...

weixin_30825953的博客 363

解决Android EditText或者AppCompatEditText按软键盘回车只是换行的问题

Android中 使用EditText或者android.support.v7.widget.AppCompatEditText输入时 默认的软键盘的回车键只是用于换行, 这会导致用户误按回车导致EditTex输入区域变宽,UI变形的BUG情况, 度娘上的回答都是让设置EditText的android:imeOptions 属性改变"回车"键默认样式 笔者按照这样的思路设置后发现无法改变"...

Ricardo_0324的博客 4491

本文帮助你解决EditText换行问题

很多安卓应用都有一个顶部的搜索栏,如这种 或者这种: 这些软件的搜索框都有一个共同点,(应答)没错都在屏幕顶部,谁说的屏幕顶部的,请出去,应该是大都是单行文本。好,开始操作。 单行文本嘛,singleline就可以了。 什么?废弃了?什么玩意?百度查一查 改成InputType = text即可,可是还有个问题,为什么他们的点开搜索栏是搜索按钮,我的点开还是回车样式呢。原来是需要改EditTe...

weixin_42825257的博客 1695

EditText 设置lines=1或者maxLines=1属性后 单机键盘上的回车键,依旧可以换行

这个bug停让人蛋疼的。我不知道这是谷歌sdk的bug还是我用的键盘软件的bug,反正,就是出来了。在最新的sdk明明已经将singleLine打上了过时标签,还是需要靠这个属性去设置。 吓得我赶紧去更新下键盘。

sunxiaogang0214的博客 2587

EditText限制最大输入行数完美实现

EditText限制最大输入行数完美实现问题描述具体实现输入框宽度固定输入框宽度不固定代码地址 问题描述 在开发中可能会遇到这样的需求: 限制输入框的输入,但是不限制具体输入字符个数,而是限制最多输入行数,当大于n行时自动截断多余的字符,用户再次输入就不会有反应。 具体可能还分两种情况: 第一种:输入框宽度固定,限制最多输入n行字符。效果如下 第二种:输入框宽度不固定,一开始设置一个最小宽度,当...

hyhlmy的博客 5536

android EditText的自动换行和对Enter键的改变

引我们长时间对EditText的控件的使用,已经积累了不少的技巧了,比如输入的类型(电话号码,数字类型,邮箱,文本…),光标的变化,默认的输入字体… 其实android的EditText中有许多的组合小技巧,并且还和android的 版本有很深切的关系。我们会发现我们在EditText中输入文字的时候,光标会随着你文字的增加一直往后移动,但是在有的android版本中,它并不会换行,其中有种有种可

有酒平步上青天 6791

android edittext 实现enter键自动换行,并空自动空二格,实现文字自动排版

功能一,近日遇到需要给输入的文字换行,并自动换二格的问题,几经周折,终于找到了解决方案 先判断软键盘输入的是enter键。在这里 return true的是为了防止输入法自身遇到enter键换行,这样就会导致换二行出现。而除了enter 返回false,就是为了让其它的软键盘功能正常使用,不然删除等键全会失效! 另外加一个 action_up是为了防止 这里调用2次这个方法。action_do...

wqbs369的专栏 2055

EditText

EditText设置android:inputType属性的话,自动换行功能会无效。 *完善EditText的自动换行功能也可以通过自定义控件实现,如:http://dev.10086.cn/cmdn/bbs/redirect.php?tid=69767&goto=lastpost   以下是网络摘录其他相关内容 1.如何对EditText进行setText()的时候使其

龙海的专栏 770

Android中如何实现EditText的自动换行

默认的edittext是不会自动换行的,那么我们只好去代码中寻求解决之道EditText editText = new EditText(this); //设置EditText的显示方式为多行文本输入 editText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); //文本显示的位置在EditText的最上方 editText.setGrav

u011130648的专栏 2万+

Android控件Edittext限制回车换行

近期做项目,自己在Edittext布局的时候设置了android:singleLine="true"然后我输入文字的时候按了一个空格,结果虽然还是一行但是文字被顶上去了,这个让我很懊恼,可能有更好的方法解决,但是我是写的一个方法,如果有更好的方法,望指教,上代码: /** * 限制回车换行 * * @param et */ public static void Limits

yhq1913的博客 4456

Android之EditText禁止回车键换行

如何让Android之EditText禁止回车键换行

MIRROR的博客 1万+

Android EditText禁止回车换行

在做一个登录页面的时候,发现了输入手机号的EditText可以输入回车的bug,影响用户体验,在此分享下解决办法。 百度了很多,都是设置singline=true的或者设置maxLines="1"(因为singline=true已经提示过时),但是都不起作用,无意中发现输入密码的EditText没有问题, 于是检查了下发现两个EditText唯一的区别在于inputType类型的不同...

bachuo6392的博客 2012
上一篇: 简单的substring用法。
下一篇: 极简易懂得mvp架构模式。
green-Fir
博客等级 码龄9年 15粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值