首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在安卓系统中设置EditText的限制?

如何在安卓系统中设置EditText的限制?
EN

Stack Overflow用户
提问于 2017-12-04 09:29:30
回答 2查看 3K关注 0票数 4

如何在EditText上设置数字限制?

与最大值一样,它是30,从31设置一个Toast

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-04 09:37:06

这是一个答案,如果你想要检测是否有超过30个字符

首先,我建议您将其设置为.xml文件,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<EditText
    android:id="@+id/someId"
    android:maxLength="30"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/> 

然后,在您的onCreate()中,您必须初始化它,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
EditText eText = (EditText)findViewById(R.id.someId);

现在您必须将Filters添加到它中,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
eText.setFilters(new InputFilter[] { 
    new InputFilter.LengthFilter(30)
});

最后,添加一个TextWatcher()来处理它,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    eText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        if(count >= 30) Toast.makeText(MainActivity.this, "Max length of EditText is "+ String.valueOf(30), Toast.LENGTH_SHORT).show();

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });

如果用户试图输入大于n的数字,就有一个检测方法

你的问题很难理解,但是是的,最后我得到了你,你很幸运我一年前做了类似的事情.

首先创建这个名为inner class (或其他名称)的Max30TextWatcher

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Max30TextWatcher implements TextWatcher {

        private EditText et;

        Max30TextWatcher(EditText et) {
            this.et = et;
        }

        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {
            if(TextUtils.isEmpty(editable.toString())){
                return;
            }
            try {
                if (Integer.valueOf(et.getText().toString()) > 30) {
                    Toast.makeText(MainActivity.this, "Max is 30 dawg", Toast.LENGTH_SHORT).show();
                    //put all the TextView ""
                    et.setText("");

                }
            }
            catch(NumberFormatException e){
                //no dots and comma accepted
                et.setText("");
            }
        }
    }

因此,您将.xml更改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<EditText
        android:id="@+id/someId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:maxLength="2" />

然后按如下方式调用新类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
et = (EditText)findViewById(R.id.someId);
et.addTextChangedListener(new Max30TextWatcher(et));

你完成了,你不能把一个大于30的数字:)

编码愉快!

票数 6
EN

Stack Overflow用户

发布于 2017-12-04 09:32:38

您可以在onTextChangeListener上添加EditText,在onTextChanged中,您可以检查输入的数字是否大于30。如果大于30,则可以使用适当的消息显示Toast,然后清除EditText的文本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47638816

复制
相关文章
安卓系统如何在WIFI里设置s5静态Ip
在 Android 设备上使用 Wi-Fi Settings 设置s5的详细教程:
华科云商小徐
2023/10/18
3050
【谷歌】停止与华为合作,限制华为使用安卓系统
据报道,在特朗普政府公布“黑名单”后,谷歌(Google)已暂停与华为的部分合作。
老九君
2019/05/22
2.8K0
安卓自启动设置
最近搞一个项目,是安卓的客户端;要求安卓启动后自动启动。本来想通过外挂进行系统启动时自动启动,但发现大多不能用。于是只能在代码级进行处理。处理如下:
谭广健
2019/07/06
1.6K0
安卓自启动设置
「技巧」安卓设置 Equalizer
工作与音乐相关的,所以避免不了工作中要涉及到 Equalizer 。中文叫均衡器,缩写就是 EQ,和情商的缩写一样。我先抛砖引玉,说直白点就是把声音优化来更好听。我直接搬移一段维基百科的说明,这个才是专业的解释。
叉叉敌
2019/07/02
1.3K0
安卓系统框架介绍(安卓常用框架)
——源码地址1: https://android.googlesource.com/
全栈程序员站长
2022/07/30
8.7K0
安卓系统框架介绍(安卓常用框架)
appinventor安卓壁纸设置(上)
初步功能需求 打开安卓app,然后会看到一张内置好的图片,点击下方的设置壁纸,实现让这个图片成为壁纸的功能,实现方法调用安卓系统内置的壁纸设置工具。
泽泽社长
2023/04/17
8940
appinventor安卓壁纸设置(上)
WebRTC 如何在安卓系统上采集视频数据
WebRTC 作为一个开源的实时音视频通讯方案,经过多年的发展基本上已经支持了所有的常用终端,比如 windows、mac、Android、iOS等。我们都知道音视频通讯的前提是采集本地的音频和视频数据信息。今天,我们就来先了解一下 WebRTC 在安卓端是如何采集视频信号的。
liuzhen007
2022/02/23
2.7K0
WebRTC 如何在安卓系统上采集视频数据
安卓系统usb调试在哪_安卓手机的usb调试
Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件、下载应用或ROOT等,都需要打开手机的USB调试模式。安卓系统的版本有很多,它们的打开方法也各不相同,下面给大家介绍各版本安卓手机打开USB调试模式的方法。
全栈程序员站长
2022/09/30
3.9K0
Android--SVG在安卓系统中的应用
通过使用它的Path标签,几乎可以实现SVG中的其它所有标签,虽然可能会复杂一点,但这些东西都是可以通过工具来完成的,所以,不用担心写起来会很复杂。
aruba
2020/07/03
2.8K0
安卓开发-设置RadioButton的点击效果
在安卓开发中用到底部菜单栏 需要用到RadioButton这个组件  实际应用的过程中,需要对按钮进行点击,为了让用户知道是否点击可这个按钮,可以设置点击后 ,该按钮的颜色或者背景发生变化。 layout中这部分的代码为: 1 <RadioButton 2 android:id="@+id/radio_button0" 3 android:layout_height="fill_parent" 4 an
听着music睡
2018/05/18
1.5K0
安卓中的数据存取
在我们每天使用的手机设备中,无时无刻都在进行着数据的存和取。安卓作为一种手机操作系统,提供了如下方式的数据存取方式:Preference,File,Sqlite和网络,可以根据程序的实际需求选择合适的存取方式。
牛老师讲GIS
2018/10/23
1.3K0
安卓中的数据存取
鸿蒙系统与安卓系统的区别
华为鸿蒙已经发布快一年了,但是经常还有小伙伴说,鸿蒙不就是安卓系统套个壳么?类似小米的米UI和华为自有的EMUI。 我们不可否认鸿蒙2.0系统跟安卓的界面确实很相似,但就因此判定鸿蒙系统是安卓换皮了吗? 都知道鸿蒙系统跟安卓一样,采用的是AOSP 开源代码,而安卓自身超过80%的代码都来自于开源项目,谁也不能说谁在换皮吧? 长期以来,谷歌Android和苹果iOS系统占据了全球移动端操作系统的绝大多数市场份额,除了苹果的IOS以外,其他手机基本使用的就是安卓系统,当然,鸿蒙推出以后就三分天下啦。 对于很多
老九君
2022/04/29
5.5K0
鸿蒙系统与安卓系统的区别
安卓设置均衡器 Equalizer
工作与音乐相关的,所以避免不了工作中要涉及到 Equalizer 。中文叫均衡器,缩写就是 EQ,和情商的缩写一样。我先抛砖引玉,说直白点就是把声音优化来更好听。我直接搬移一段维基百科的说明,这个才是专业的解释。
叉叉敌
2019/07/03
2.1K0
安卓 topic-UI-设置 settings
应用通常包括允许用户修改应用特性和行为的设置。例如,有些应用允许用户指定是否启用通知,或指定应用与云端同步数据的频率。
acc8226
2022/05/17
3.1K0
安卓 topic-UI-设置 settings
安卓再现系统广播高危漏洞,影响99.9%安卓手机
近日,有博客披露安卓系统存在安卓系统广播漏洞,99.9%的安卓手机将面临安全威胁。恶意程序利用该漏洞,可伪造任意内容的手机短信,及致手机死机,甚至可将手机恢复出厂设置(所有数据将被擦除)。该漏洞目前影响5.0版本以下99.9%的安卓系统手机。 安全专家研究发现,谷歌在刚刚发布的安卓系统5.0(Lolipop)中悄悄修复了一项高危漏洞,“利用该漏洞,可以发送任意广播:不仅可以发送系统保护级别的广播、还可以无视receiver的android:exported=false、android:permisson
安恒信息
2018/04/10
3.3K0
安卓再现系统广播高危漏洞,影响99.9%安卓手机
【安卓笔记】高速的发展设置界面—–PreferenceActivity
通常做法是自定义布局,然后在代码里面加入响应函数,并将结果保存到Sharedpreferences中。
全栈程序员站长
2022/07/11
4700
【安卓笔记】高速的发展设置界面—–PreferenceActivity
安卓模拟器怎么设置代理
app开发测试的同学为了调试方便,通常会在电脑上装一些android模拟器,开多台进行测试。调试中通常要干的一件事就是抓取,那么想要抓包,我们必须要设置代理。
周小董
2019/03/25
12.6K2
安卓模拟器怎么设置代理
浅谈安卓中的MVP模式
端午放假,天气下雨,于是乎在家撸一下博客,本篇博客将为大家解析MVP模式在安卓中的应用。
老马的编程之旅
2022/06/22
9860
浅谈安卓中的MVP模式
安卓仓库管理系统源码
大等于jdk1.8,大于mysql5.5,idea(eclipse),Android Studio
淘毕设
2022/07/17
2.3K0
浅谈安卓系统上的DSU loader
什么是DSU loader? dsu loader即 动态系统更新可以在使用动态分区的安卓设备上,不影响原来系统的同时安装一个副系统,用于体验最新的原生安卓系统(AOSP)(博主评:相比传统刷机模式,
Tianli
2023/03/03
12.9K0

相似问题

如何在EditText安卓系统中设置默认游标?

22

安卓系统中的EditText?

21

安卓系统中的EditText

32

限制EditText在安卓系统中只接受Urls

20

如何在安卓系统中使用InputFilter限制EditText中的字符?

19241
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文