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

发布于 2024-09-03 04:48:41 字数 184 浏览 8 评论 0 原文

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

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

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

Is there a way I can specify an input mask to the EditText control in Android?

I want be able to specify something like ### - ## - #### for a Social Security Number. This will cause any invalid input to be rejected automatically (example, I type alphabetical characters instead of numeric digits).

I realize that I can add an OnKeyListener and manually check for validity. But this is tedious and I will have to handle various edge cases.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

不再见 2024-09-10 04:48:41

尝试使用 InputFilter 而不是 <代码>OnKeyListener。这意味着您不必担心跟踪各个按键,它还会处理诸如粘贴到字段之类的事情,而使用 OnKeyListener 处理起来会很痛苦。

您可以查看 Android 附带的 InputFilter 实现的源代码为您编写自己的实现提供了一个起点。

Try using an InputFilter rather than an OnKeyListener. 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 an OnKeyListener.

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.

一腔孤↑勇 2024-09-10 04:48:41

我知道在 Android Studio 中的 Android 程序中的 EditText 上使用掩码的最简单方法是使用 MaskedEditText 库 (GitHub 链接)。
它是一种带有 Watcher 的自定义 EditText,允许您设置不同颜色的提示(如果您愿意,即使用户已经开始输入,它也将可用)、遮罩,并且非常易于使用:-)

compile 'ru.egslava:MaskedEditText:1.0.5'

<br.com.sapereaude.maskedEditText.MaskedEditText
    android:id="@+id/phone_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="phone"
    android:typeface="monospace"
    mask:allowed_chars="1234567"
    mask:mask="###-##-##"
    app:keep_hint="true"
    />

就是这样!

输入图像描述这里

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 :-)

compile 'ru.egslava:MaskedEditText:1.0.5'

<br.com.sapereaude.maskedEditText.MaskedEditText
    android:id="@+id/phone_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="phone"
    android:typeface="monospace"
    mask:allowed_chars="1234567"
    mask:mask="###-##-##"
    app:keep_hint="true"
    />

And that is!

enter image description here

神也荒唐 2024-09-10 04:48:41

您可以查看 android.telephony.PhoneNumberFormattingTextWatcher 类。它使用 ###-###-#### 模式屏蔽电话号码文本输入。

You could take a look at the android.telephony.PhoneNumberFormattingTextWatcher class. It masks a phone number text input with the ###-###-#### pattern.

梦回梦里 2024-09-10 04:48:41
String phoneNumber = "1234567890";

String text = String.valueOf( android.telephony.PhoneNumberUtils.formatNumber(phoneNumber) ); //formatted: 123-456-7890

editTextMobile.setText(text); //set editText text equal to new formatted number

editTextMobile.setSelection(text.length()); //move cursor to end of editText view

onKey 函数中使用它,可以通过格式化的电话号码进行美味的即时兔子性爱。

String phoneNumber = "1234567890";

String text = String.valueOf( android.telephony.PhoneNumberUtils.formatNumber(phoneNumber) ); //formatted: 123-456-7890

editTextMobile.setText(text); //set editText text equal to new formatted number

editTextMobile.setSelection(text.length()); //move cursor to end of editText view

Use this in an onKey function for delicious on-the-fly bunny sex with formatted phone numbers.

丿*梦醉红颜 2024-09-10 04:48:41

这个网站提供了两个很好的课程来帮助您我发现屏蔽非常有用。

您需要使用评论中的项目来改进它。但值得添加到您的程序中,以便轻松屏蔽您的 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.

孤独难免 2024-09-10 04:48:41

您可以在 EditText

效果 rel="nofollow noreferrer">在此处输入图像描述

you can use this efect in EditText

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文