如何限制EditText输入内容

2024-01-12

我正在尝试创建一个简单的计算器,它提供 EditText 供用户输入数字。 允许输入的内容应该是[1,2,3,4,5,6,7,8,9,0,.]

我知道可以使用以下代码来限制输入内容

android:digits="1234567890."
android:inputType="phone"

但是我怎样才能防止用户添加多个点(.)进入编辑文本框?


您可以使用输入过滤器 http://developer.android.com/reference/android/text/InputFilter.html将 EditText 中的字符限制为:

EditText mEdit = (EditText)findViewById(R.id.mEdit);          
InputFilter[] filters = {new AdnNameLengthFilter()};  
mEdit.setFilters(filters);  
public static class AdnNameLengthFilter implements InputFilter  
    {  
        private int nMax;  

        public  CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)  
        {  
            Log.w("Android_12", "source("+start+","+end+")="+source+",dest("+dstart+","+dend+")="+dest);  

            if(dest.toString()=="."||( source.toString()==".")  
            {  
               //DO SOMTHING HERE  
            }else  
            {  
                //DO SOMTHING HERE
            }  
        }
    }

第二个选项是文本观察器 http://developer.android.com/reference/android/text/TextWatcher.html用于查找用户输入的字符:

mEditText = (EditText)findViewById(R.id.ET);
mEditText.addTextChangedListener(mTextWatcher);
TextWatcher mTextWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int arg1, int arg2,
                int arg3) {
            // YOU STRING BEFORE CHANGE
        }
        @Override
        public void onTextChanged(CharSequence s, int arg1, int arg2,
                int arg3) {
              // CHARS INPUT BY USER
        }
        @Override
        public void afterTextChanged(Editable s) {
              // AFTER TEXT CCHANGE In EDITTEXT BY USER
        }
    };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何限制EditText输入内容 的相关文章

  • JKS、BKS 和 PKCS12 文件格式

    我正在设置一个无头服务器 该服务器使用用户提供的数据 JS CSS HTML 密钥库 为 Android 构建 Phonegap 混合应用程序 我想进行一些基本的客户端检查 以确保上传的密钥库有效 对于 JKS 文件 我发现可以通过确保提供
  • 如何在 Android 中以编程方式配置启动器活动?

    我正在开发一个具有两项活动的应用程序 LoginActivity and MainActivity 当用户首次打开应用程序时 他将登录并且他的凭据 用户名和令牌 保存在Preferences 现在 如果用户再次打开应用程序MainActiv
  • Android 视图展开动画

    我正在尝试编辑这些来源 https github com gabrielemariotti androiddev tree master AnimationTest创建一个适用于我所有视图的简单函数 Override public void
  • Android,无法从谷歌API获取天气

    以下代码之前运行良好 class RetreiveWeatherTask extends AsyncTask
  • 如何以编程方式从 mipmap 文件夹加载图像? [复制]

    这个问题在这里已经有答案了 如何从 加载图像mipmap以编程方式保存文件夹 与可绘制对象一样 img setImageResource imageId 我使用的是Android Studio 1 2 1 In 安卓工作室我们有mipmap
  • 可以混淆/加密 SharedPreferences 文件吗?

    因此 我对混淆应用程序的 SharedPreferences xml 文件很感兴趣 就像 Android LVL 混淆其许可证 cahce 数据一样 这是可以想象的吗 大量的谷歌挖掘几乎没有产生任何可能解决我的问题的结果 我当然不是密码学家
  • 无法打开本地终端

    我尝试在 Android Studio 中初始化我的终端 但它给了我错误 它说 无法打开本地终端 java io IOException 无法创建 PTY 我的电脑运行的是 Windows 10 如何解决这个问题 当您从 Github 存储
  • 如何防止 Activity 在后退操作时重新加载

    我有连接到互联网以获取数据的应用程序 我可以多层次访问数据 假设我从第 3 级开始 在第 4 级我决定返回 每当我按回之前的活动时 就会从互联网重新加载数据 有可能阻止这种情况吗 我尝试以单顶模式运行该活动 将数据加载代码移至 single
  • 如何从另一个应用程序向一个应用程序添加视图

    我的应用程序叫做我的好应用 MyNiceApp 主要只是一个加载视图的核心coreView在主活动中onCreate coreView由用户根据需要下载的其他插件的视图填充 我定义了核心视图上的各个区域 这些区域可以通过 MyNiceApp
  • GCM(Google 云消息传递)是否需要 Google 帐户?

    我需要编写一个简单的应用程序来获取推送通知 我使用 GCM 它使用 Google Play 服务来获取信息 我的问题是 要访问 GCM 是否需要 Google 帐户 我可以使用其他电子邮件帐户来识别设备吗 有没有其他方法可以获取另一个电子邮
  • SDK 管理器中缺少 Google Play 服务

    我想在我的应用程序中使用 Google 地图 我想在 SDK 管理器中安装 Google Play 服务 但是当我转到 SDK 管理器时 我没有看到 Google Play 服务 为什么 我该如何安装这个 我可以独立于 SDK Manage
  • 在InputMethodService 外部调用InputMethodManager.setInputMethod(IBinder token, String id)。哪里可以找到代币?

    我想通过单击按钮在我的 EditText 上显示 Google 语音输入 IME 所以 根据this http android developers blogspot ru 2011 12 add voice typing to your
  • android sqlite 如果不存在则创建表

    创建新表时遇到一点问题 当我使用 CREATE TABLE 命令时 我的新表按应有的方式形成 但是当我退出活动时 应用程序崩溃 并且我在 logcat 中得到一个表已存在 如果我使用 CREATE TABLE IF NOT EXISTS 则
  • 日志记录在 Android 设备上实际上有什么作用?

    我一直在 Android 示例中看到这样的代码 try catch Exception e Log e Error e getMessage 什么是Log e实际上在物理设备上做什么 它进入系统日志 开发人员可以通过 SDK 工具访问该日志
  • 如何在Webview中保存用户名和密码

    目前 我还在学习Android开发的过程中 所以如果我的这个问题对你来说不太容易理解 请原谅 我创建了一个 Android 应用程序 它使用 RecyclerView 显示一组列表 当用户单击列表中的每个名称时 它会将它们重定向到一组不同的
  • Android - 保持用户登录状态

    我正在尝试使用 PHP 和 MySQLi for Android 进行登录 我不明白的是如何保持用户登录状态 我看到一个简单的教程 其中有人使用 SQLite 来保护信息 但我不知道这是否真的安全 如何保存用户信息以保持用户登录状态 谢谢
  • Android 图标与徽标

    The
  • RecyclerView 适配器的 Kotlin 泛型

    我正在尝试编写一个通用的 recyclerview 适配器 我找到了几个例子 然而 仍然无法弄清楚如何实现通用适配器 我写的代码是 open abstract class BaseAdapter
  • Android进程调度

    我试图更好地理解 以便在创建 Android 应用程序 服务时确定潜在的互操作性问题对可靠性的影响 我想弄清楚进程优先级是如何确定的 服务和活动之间优先级的差异以及调度程序是否以不同方式对待它们的优先级 基本上 我试图深入了解某个活动或服务
  • Android VideoView 中纵向视频方向错误

    我在 Android 设备上以肖像方向拍摄新视频 如下所示 Intent intent new Intent android provider MediaStore ACTION VIDEO CAPTURE startActivityFor

随机推荐

  • Goertzel算法获取相位?

    我正在使用 Goertzel 算法来获取特定频率的幅度 我现在正在尝试从中获取相位 但我不知道如何 有人可以解释一下 并向我展示如何从这段代码中获取某个 f 的相位吗 另外 我使用它的频率为 16khz 采样率为 44 1 我可以运行的最小
  • 有没有办法在不调用 System.exit() 的情况下终止使用 java3d 的 java 应用程序?

    Java3D 启动多个系统线程 并且不会在它们上设置 isDaemon 标志 当我处置应用程序的 唯一 JFrame 时 它 不会终止 因为这些线程仍在运行 调用 System exit 似乎是终止应用程序的唯一方法 当然 或者从外部杀死它
  • 查找位数组中的第一个零

    我有一个位图 uint64 t bitmap 10000 跟踪系统中分配的资源 现在的问题是如何有效地找到该位图中的第一个未设置 零 位 我知道有ffsll unsigned long long 在 glibc 中查找第一个设置位 我认为这
  • 我正在使用带有加号按钮的底部选项卡,但是加号按钮在 android 中的本机反应中的一半区域中不可单击?

    我在 React Native 中使用 react navigation bottom tabs 我需要该区域上方的加号按钮 所以我能够实现它 但在 Android 中 加号图标的上方一半区域在 android 中不可单击 但在 IOS 中
  • 使用 ApplicationSettingsBase 存储通用 List

    我正在尝试使用 ApplicationSettingsBase 保存 List 但是即使填充了列表 它也仅输出以下内容
  • Foundation Small-12 色谱柱的更改顺序

    我有一个布局 左侧有图像 右侧有文本 适用于中型和大型视图 不过 我希望文本位于 small 12 上的图像之前 拉 推机制似乎不适用于 xxx 12 列 这些是我的 div div class large 4 medium 6 small
  • 如何在 Matlab 中将单个二维曲线绘制到颜色图上?

    我使用 Matlab 中现有的编译数据创建了一个平滑的颜色渐变二维等值线图 我将 x 轴 y 轴和 z 数据轮廓绘制为颜色图 我的目标是在颜色图上绘制一条二维曲线 代表单个 z 数据值 但我不知道如何做 有谁知道如何将 2 D 曲线绘制到
  • Dijkstra 的单源最短路径,带有权重为“w”的额外边

    在最近的一次采访中 我被要求实现单源最短路径算法 用于无向和正加权图 并稍作修改 即我们获得了权重为 w 的额外边缘 我们必须找到一条比 SSSP 算法计算的路径更短的路径 通过在两个尚未连接的节点之间连接权重 w 的额外边 这是一张图片
  • 在 Android 中使用 Google Maps API 从用户位置获取附近地点的结果

    这是第一次使用谷歌地图API和谷歌地点API 我正在做一个演示应用程序 它显示距离用户位置最近的医院列表 例如 以及到每家医院的路线 我能够使用下面的代码获取用户的位置 public class MainActivity extends A
  • 为什么对话框会删除其内容而不刷新?

    我遇到了一个非常奇怪的问题 窗口似乎正在擦除其内容 并且在擦除后没有重新绘制它 该对话框源自CDHtmlDialog 我认为这是问题的一部分 发生某种非确定性代码执行 导致某些代码在某些情况下先于其他代码执行 而在其他情况下则相反 涉及的消
  • android可扩展列表视图从firebase检索数据

    我该如何使用firebase检索我的数据Expandable listview my firebase节点是这样的 适配器类 public class CustomExpandableListViewAdapter extends Base
  • 等待进程结束

    您好 我必须编写必须打开一些系统属性的程序 例如 Process sound new Process sound StartInfo FileName mmsys cpl sound Start Place 1 Process device
  • numpy:沿新轴扩展数组?

    当然一定有办法做到这一点 我无法解决 我有一个 9 4 数组 我想沿第三轴重复它 4096 次 所以它变得简单 9 4 4096 9 4 数组中的每个值简单地重复 4096 次沿着新的轴线 如果我可疑的 3D 图有意义 对角线是 z 轴 4
  • 雅可比坐标系中的椭圆曲线加法

    我尝试在素数场上的椭圆曲线上添加两个点 将这些点从仿射 仿射坐标转换 但无法获得正确的结果 我正在测试的曲线有 a 0 任何人都可以看到出了什么问题吗 From Affine BigInteger X1 P x BigInteger Y1
  • SpringBoot应用程序发布并读取ActiveMQ主题

    我有两个应该从一个主题中读取的接收器 但只有一个随机接收者收到消息 就像它实际上是从队列而不是主题中读取的一样 我读了this https stackoverflow com questions 40144561 how to listen
  • 将图框与 PyCharm 结合使用

    我花了将近两天的时间在互联网上滚动 但无法解决这个问题 我正在尝试安装图形框架包 https spark packages org package graphframes graphframes 版本 0 2 0 spark2 0 s 2
  • Android 设备与本地主机服务器的连接[重复]

    这个问题在这里已经有答案了 我是安卓新手 我正在开发一个使用 MySQL 的应用程序 该应用程序在模拟器中运行良好 但现在我需要在 Android 设备中运行该应用程序 我能做些什么 正如第一条评论中所述 您应该检查文件 AndroidMa
  • jQuery:如何使用 live() 捕获按键

    我需要捕获某些动态输入上的选项卡按键事件 但使用按键事件的正常语法似乎无法捕获按键代码 input live keypress function e if e which 9 alert Tab pressed 当我在 firebug 中通
  • 在shell脚本中创建重复字符的字符串[重复]

    这个问题在这里已经有答案了 我需要生成一串点 字符 作为变量 即 在我的 Bash 脚本中 用于输入15我需要生成这个长度为 15 的字符串 我需要以不同的方式这样做 我尝试使用它作为基础 来自 Unix com http www unix
  • 如何限制EditText输入内容

    我正在尝试创建一个简单的计算器 它提供 EditText 供用户输入数字 允许输入的内容应该是 1 2 3 4 5 6 7 8 9 0 我知道可以使用以下代码来限制输入内容 android digits 1234567890 android