在 Android 中使用 EditText 小部件屏蔽输入
有没有办法可以为 Android 中的 EditText 控件指定输入掩码?
我希望能够为社会安全号码指定类似 ### - ## - #### 的内容。这将导致任何无效输入被自动拒绝(例如,我输入字母字符而不是数字)。
我意识到我可以添加 OnKeyListener 并手动检查有效性。但这很乏味,我将不得不处理各种边缘情况。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
尝试使用
InputFilter
而不是 <代码>OnKeyListener。这意味着您不必担心跟踪各个按键,它还会处理诸如粘贴到字段之类的事情,而使用OnKeyListener
处理起来会很痛苦。您可以查看 Android 附带的
InputFilter
实现的源代码为您编写自己的实现提供了一个起点。Try using an
InputFilter
rather than anOnKeyListener
. This means you don't have worry about tracking individual key presses and it will also handle things like pasting into a field which would be painful to handle with anOnKeyListener
.You could have a look at the source of the
InputFilter
implementations that come with Android to give you a starting point for writing your own.我知道在 Android Studio 中的 Android 程序中的 EditText 上使用掩码的最简单方法是使用
MaskedEditText
库 (GitHub 链接)。它是一种带有 Watcher 的自定义 EditText,允许您设置不同颜色的提示(如果您愿意,即使用户已经开始输入,它也将可用)、遮罩,并且非常易于使用:-)
就是这样!
The easiest way I know to use a mask on EditText in your Android programs in Android Studio is to use
MaskedEditText
library (GitHub link).It's a kind of custom EditText with Watcher that allows you to set a hint with different color (if you want it will be available even when user already started to type), mask and it's very easy to use :-)
And that is!
您可以查看 android.telephony.PhoneNumberFormattingTextWatcher 类。它使用 ###-###-#### 模式屏蔽电话号码文本输入。
You could take a look at the android.telephony.PhoneNumberFormattingTextWatcher class. It masks a phone number text input with the ###-###-#### pattern.
在
onKey
函数中使用它,可以通过格式化的电话号码进行美味的即时兔子性爱。Use this in an
onKey
function for delicious on-the-fly bunny sex with formatted phone numbers.这个网站提供了两个很好的课程来帮助您我发现屏蔽非常有用。
您需要使用评论中的项目来改进它。但值得添加到您的程序中,以便轻松屏蔽您的 EditText 视图的许多蒙版。
This site gives a good 2 classes that help with masking that I found quite useful.
You need to use the items in the comments to improve it. But worth adding to your program for ease of masking your EditText views for many masks.
您可以在 EditText
效果 rel="nofollow noreferrer">
you can use this efect in EditText