4

私はAndroid用のアプリケーションを開発しています。このアプリでは、ユーザーはサインアップする必要があり、電話番号を入力する必要があります。このテキスト フィールドのマスクを +7 (999) 999-99-99 のような形式で作成します。使用してみましmPhoneNumberEditText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());たが、(999) 999-9999 形式しか提供されません。必要なフォーマットを行うにはどうすればよいですか?

4

4 に答える 4

2

このプラグインは次のことに役立ちます。

https://github.com/pinball83/Masked-Edittext

<com.github.pinball83.maskededittext.MaskedEditText
            android:id="@+id/masked_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="number"
            app:mask="+7 (***) ***-**-**"
            app:notMaskedSymbol="*"/>

ここに画像の説明を入力

于 2016-12-26T00:50:50.253 に答える
1

お探しのフォーマットはロシアで使用されています。次のコードを使用します。

String data = PhoneNumberUtils.formatNumber("9999999999", "RU");
Log.i("Number", data);

最初のパラメーターは数字の文字列で、2 番目のパラメーターは国の ISO コードです。

便利なリンク: Android ドキュメント,さまざまな国の電話番号の形式 , 国ISO コード

于 2016-02-26T12:06:01.027 に答える
0

アイデアを提供するために、私のコードを共有しています。

私はずっと前に自分のプロジェクトでそれを行いました。次の番号 XXXXXXXXXXXXX が textwatcher で XXXXXXX-XXXXXXX-X にどのように変換されたかを理解していただければ幸いです。

 @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            int i = et_cnic.getText().toString().length();
            if (i < 6)
                len = 0;
            if (i == 6 && len < 7) {
                len = 7;
                String ss = s.toString();
                String first = ss.substring(0, ss.length() - 1);
                String last = ss.substring(ss.length() - 1);
                et_cnic.setText(first + "-" + last);
                et_cnic.setSelection(et_cnic.getText().length());
            }
            if (i < 14)
                len2 = 0;
            if (i == 14 && len2 < 14) {
                len2 = 14;
                String ss = s.toString();
                String first = ss.substring(0, ss.length() - 1);
                String last = ss.substring(ss.length() - 1);
                et_cnic.setText(first + "-" + last);
                et_cnic.setSelection(et_cnic.getText().length());
            }
        }
于 2016-02-26T10:32:30.943 に答える