有沒有一種方法可以在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