22

AndroidのEditTextコントロールに入力マスクを指定する方法はありますか?

社会保障番号に###-##-####のようなものを指定できるようにしたい。これにより、無効な入力が自動的に拒否されます(たとえば、数字の代わりにアルファベット文字を入力します)。

OnKeyListenerを追加して、手動で有効性を確認できることに気付きました。しかし、これは面倒であり、さまざまなエッジケースを処理する必要があります。

バジー

4

6 に答える 6

25

InputFilterではなくを使用してみてくださいOnKeyListener。これは、個々のキーの押下を追跡する必要がないことを意味します。また、で処理するのが面倒なフィールドへの貼り付けなども処理しますOnKeyListener

Androidに付属している実装のソースをInputFilter見て、独自の実装を作成するための出発点を得ることができます。

于 2010-05-26T11:49:46.853 に答える
8

Android StudioのAndroidプログラムでEditTextのマスクを使用する最も簡単な方法は、MaskedEditTextライブラリ(GitHubリンク)を使用することです。これは一種のカスタムEditTextwithWatcherであり、さまざまな色(ユーザーがすでに入力を開始している場合でも利用できるようにしたい場合)、マスクを使用してヒントを設定でき、非常に使いやすいです:-)

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"
    />

そしてそれはです!

ここに画像の説明を入力してください

于 2017-03-07T10:49:23.390 に答える
3

android.telephony.PhoneNumberFormattingTextWatcherクラスを見ることができます。###-###-####パターンで入力された電話番号のテキストをマスクします。

于 2010-09-24T11:15:51.073 に答える
2
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フォーマットされた電話番号でおいしいオンザフライバニーセックスのための機能でこれを使用してください。

于 2010-12-21T08:16:53.097 に答える
0

このサイトでは、マスキングに役立つ2つのクラスが用意されており、非常に便利です。

あなたはそれを改善するためにコメントの項目を使用する必要があります。ただし、多くのマスクのEditTextビューを簡単にマスクできるように、プログラムに追加する価値があります。

于 2014-09-28T23:17:53.513 に答える
0

EditTextでこの効果を使用できます

ここに画像の説明を入力してください

于 2015-12-29T16:50:49.993 に答える