私のアプリケーションでは、ユーザーからの電話番号を受け入れるeditTextがあります。私のターゲットは、ユーザーが電話番号を入力するとすぐにフォーマットする必要があります(テキスト変更リスナーに適用する場合と同様)、フォーマットはのようになりXXX-XXX-XXXX
ます。
私はコードを次のように書きました
ePhone.addTextChangedListener(new TextWatcher() {
private Pattern pattern;
private Matcher matcher;
String a;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
boolean flag = true;
if (flag) {
if (((ePhone.getText().length() + 1) % 4) == 0)
{
if (ePhone.getText().toString().split("-").length <= 2)
{
ePhone.setText(ePhone.getText() + "-");
ePhone.setSelection(ePhone.getText().length());
}
}
a = ePhone.getText().toString();
} else {
ePhone.setText(a);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stus
}
});
しかし、ユーザーがこれから番号を削除したい場合editText
、それは正しく機能していません。前もって感謝します。