AndroidのEditTextコントロールに定型入力を指定する方法はありますか?
社会保障番号に###-##-####のようなものを指定できるようにしたい。これにより、無効な入力が自動的に拒否されます(たとえば、数字ではなくアルファベットを入力します)。
OnKeyListenerを追加して有効性を手動で確認できることを理解しています。しかし、これは退屈な作業であり、さまざまなEdgeケースを処理する必要があります。
バジー
InputFilter
ではなく OnKeyListener
を使用してみてください。これは、個々のキープレスの追跡について心配する必要がなく、OnKeyListener
で処理するのが面倒なフィールドへの貼り付けなどの処理も行うことを意味します。
Android=に付属している InputFilter
実装のソース を参照して、独自のコードを作成するための開始点を確認できます。
Android StudioのAndroidプログラムでEditTextにマスクを使用する最も簡単な方法は、MaskedEditText
ライブラリ( GitHubリンク )を使用することです。これは、ウォッチャーを備えたカスタム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"
/>
そしてそれです!
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
関数で使用して、フォーマット済みの電話番号を使用したおいしいオンザフライバニーセックスを行います。
この efect をEditTextで使用できます
これ site は、マスキングに役立つ2つのクラスを提供します。
コメントの項目を使用して改善する必要があります。しかし、多くのマスクのEditTextビューを簡単にマスクできるように、プログラムに追加する価値があります。