有没有一种方法可以在Android中为EditText控件指定输入屏蔽?使用Android中的EditText Widget屏蔽输入
我希望能够指定类似### - ## - ####的社会安全号码。这将导致任何无效输入自动被拒绝(例如,我输入字母字符而不是数字)。
我意识到我可以添加一个OnKeyListener并手动检查有效性。但这很乏味,我将不得不处理各种边缘案例。
嗡嗡
有没有一种方法可以在Android中为EditText控件指定输入屏蔽?使用Android中的EditText Widget屏蔽输入
我希望能够指定类似### - ## - ####的社会安全号码。这将导致任何无效输入自动被拒绝(例如,我输入字母字符而不是数字)。
我意识到我可以添加一个OnKeyListener并手动检查有效性。但这很乏味,我将不得不处理各种边缘案例。
嗡嗡
尝试使用InputFilter
而不是OnKeyListener
。这意味着您不必担心跟踪单个按键,它也会处理诸如粘贴到一个可能会因使用OnKeyListener
而感到痛苦的字段。
您可以看看Android附带的source of the InputFilter
implementations,为您提供编写自己的起点。
谢谢。 InputFilter源提供了一些很好的见解。 – Buzzy 2010-05-26 13:24:30
链接已损坏。 – theblang 2014-09-25 13:36:12
修复了链接。 – friederbluemle 2016-04-18 09:14:10
你可以看看android.telephony.PhoneNumberFormattingTextWatcher类。它用### - ### - ####模式掩盖电话号码文本输入。
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
功能与格式化的电话号码美味的即时性兔子。
这site给了一个很好的2类,帮助掩蔽,我发现很有用。
您需要使用评论中的项目来改进它。但值得添加到您的程序,以方便掩盖许多口罩的EditText视图。
我知道使用上的EditText口罩在你的Android程序Android Studio中是使用MaskedEditText
库(GitHub link)最简单的方法。 这是一种带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"
/>
就是这样!
我明白是要指定输入类型,如数字,字符,密码(型)?在这种情况下,你可以使用setInputType(int type)方法来查看http://developer.android.com/reference/android/text/InputType.html,否则你可以在声明编辑文本的同时用XML指定 – Vamsi 2010-05-26 13:21:23
看看这些类型。我需要更多的控制输入文本的格式。 – Buzzy 2010-05-26 13:27:41