在 Android 中使用 EditText 小部件屏蔽输入

2024-01-07

有没有办法可以为 Android 中的 EditText 控件指定输入掩码?

我希望能够为社会安全号码指定类似 ### - ## - #### 的内容。这将导致任何无效输入被自动拒绝(例如,我输入字母字符而不是数字)。

我意识到我可以添加 OnKeyListener 并手动检查有效性。但这很乏味,我将不得不处理各种边缘情况。


尝试使用InputFilter https://developer.android.com/reference/android/text/InputFilter.html而不是一个OnKeyListener。这意味着您不必担心跟踪各个按键,它还可以处理诸如粘贴到字段之类的事情,而使用OnKeyListener.

你可以看看的来源InputFilter实施 https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/InputFilter.javaAndroid 附带的工具可以为您提供编写自己的程序的起点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中使用 EditText 小部件屏蔽输入 的相关文章

随机推荐

  • 在 Django 中获取 POST 值

    我有一个ajax提交 GET询问 但它改变了我的数据库 所以聪明的人告诉我我应该使用POST而是用 csfr token 获取查询 document on submit follow function e var button this f
  • 将数据从一个 pandas 数据帧替换为另一个

    我有两个数据框 df1 和 df2 它们都包含时间序列数据 因此 df1 和 df2 中的某些日期可能彼此相交 而其余日期则不相交 我的要求是对两个数据帧进行操作 将 df1 中的值替换为 df2 中相同日期的值 仅保留 df1 中不存在于
  • 为什么 Rust 使用“match”而不是“switch”或“case”?

    我很好奇这件事的历史 我会假设switch会吸引 C C Java etc 程序员 因此是一个自然的选择 如果有人想避免语义上的混乱 因为match比switch 我假设有人会借case来自哈斯克尔 Rust 参考文献引用了 https d
  • 存根 setTimeout 函数

    我有一个函数等待 async function wait time return new Promise resolve gt setTimeout resolve time 我这样称呼这个等待 await wait 5000 来自不同的函
  • AWS 从 S3 下载对象时出错,“配置文件不能为空”

    我已经看过了this https stackoverflow com questions 40897548 aws java s3 uploading error profile file cannot be null 但没有答案来解释我的
  • Delphi 控件中的 Ctrl+Backspace

    the Ctrl Backspace键盘快捷键通常会删除插入符号左侧的单词 但它不适用于您期望的任何标准 Delphi 控件 TEdit TMemo TComboBox等 有趣的是 Ctrl Delete工作得很好 有人知道如何轻松纠正这种
  • iOS SDK。显示通话中状态栏

    任何人都知道如何在应用程序进入后台时显示通话状态栏和来自应用程序的消息 我知道 AppStore 中的许多应用程序都可以执行此操作 例如 http myevoz com http myevoz com 据我了解 他们使用 SBStatusB
  • Angular 6:在子路由中跳过父路由解析器?

    我正在尝试向我的应用程序添加路由 并且我有一个带有parentResolver的父路由和一个带有Child Resolver的子路由 当我访问 parent 时 父解析器完美启动 但问题是 当我访问 parent child 时 父解析器会
  • UISplitViewController - 防止 iPhone 6 plus 上的横向分割

    我在我的应用程序中使用 UISplitViewController 这在 iPad 上工作得很好 主要和次要始终可见 并且在大多数 iPhone 上工作得很好 它的作用类似于 UINavigationController 在 iPhone
  • 如何使长TextView的一部分在屏幕上可见?

    我在 ScrollView 中有一个 TextView TextView 充满了大文本 任何时候只有部分文本在屏幕上可见 现在我想 以编程方式 强制文本的某些部分对用户可见 例如 我的文字是 Lorem ipsum dolor sat am
  • 我如何知道我的服务器是否有 NUMA?

    从 Java 垃圾收集中跳出来 我遇到了NUMA 的 JVM 设置 http www slideshare net ludomp gc tuning in the hotspot java vm a fisl 10 presentation
  • 无法理解条件执行流程[重复]

    这个问题在这里已经有答案了 一个简单的js片段 为什么总是提示 结果为空 据我了解 if块应该被执行 因为result is true并警惕 结果不为空 这是因为 进行隐式类型转换 如果您使用严格版本 它会做你所期望的 但宽松版型 会将这两
  • Firebase Android 自动登录

    所以我设置了电子邮件 密码注册和登录 那是有效的 我以为 Firebase 已经解决了这个问题 但显然没有 我希望在用户关闭应用程序后 下次打开应用程序时就已经登录 缺什么 class LoginActivity AppCompatActi
  • 使用 nth-child 设置第 4 项及以后项目的样式

    我有一个列表项 我希望第四项及以后的项有不同的background color 我尝试过以下方法 li nth child 4 background color blue 这仅对第 4 个项目进行样式设置 然后我尝试了以下操作 希望它能够为
  • Java 8 多线程:如何实现并行性以及单个线程的超时?

    我想要实现的目标摘要 我想并行执行 N 个任务 这样任何单个任务的运行时间都不应超过两秒 我们可以将此类任务标记为失败 作为输出 我想返回成功任务的输出和失败任务的状态为失败 此外 一项任务的超时不应导致电路中断 即其他任务的执行不应停止
  • 如何在 UML 中表示从模板参数的继承?

    使用 UML 我如何表示A lt Foo gt 在下面的代码中 template lt class T gt class A public T class Foo A lt Foo gt a foo 像这样的东西 对可怜的ascii艺术表示
  • ForkJoinPool - 为什么程序抛出 OutOfMemoryError?

    我想在 Java 8 中尝试 ForkJoinPool 所以我编写了一个小程序来搜索给定目录中名称包含特定关键字的所有文件 Program public class DirectoryService public static void m
  • C# 将字节数组附加到现有文件

    我想将字节数组附加到已经存在的文件中 C test exe 假设以下字节数组 byte appendMe new byte 1000 File AppendAllBytes C test exe appendMe Something lik
  • 嵌套 jQuery 选择器

    无论如何 是否有嵌套的 jQuery 选择器 例如 如果该页面还有一个ID LeadEditForm Title 某处然后执行以下操作 jQuery id A0 R0 Main Phone Number live mousedown fun
  • 在 Android 中使用 EditText 小部件屏蔽输入

    有没有办法可以为 Android 中的 EditText 控件指定输入掩码 我希望能够为社会安全号码指定类似 的内容 这将导致任何无效输入被自动拒绝 例如 我输入字母字符而不是数字 我意识到我可以添加 OnKeyListener 并手动检查