Вместо 5118710 должно быть 511-8710. Я хотел бы добавить тире после того, как пользователь уже ввел 3 цифры в EditText. Максимальная длина EditText составляет только 7 цифр.
После того, как я разобрался с вышеуказанной проблемой, я снова застрял в кодировании. Когда я уже ввел 3 цифры, он добавляет тире (это то, что я хотел бы сделать), но моя проблема в том, что следующие 3 цифры также добавляют тире (например: 511-871-
)... Пожалуйста помогите мне с этим. Благодарность!
txt_HomeNo.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
boolean flag = true;
String eachBlock[] = txt_HomeNo.getText().toString().split("-");
for (int i = 0; i < eachBlock.length; i++) {
if (eachBlock[i].length() > 3) {
flag = false;
}
}
if (flag) {
txt_HomeNo.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL)
keyDel = 1;
return false;
}
});
if (keyDel == 0) {
if (((txt_HomeNo.getText().length() + 1) % 4) == 0) {
if (txt_HomeNo.getText().toString().split("-").length <= 3) {
txt_HomeNo.setText(txt_HomeNo.getText() + "-");
txt_HomeNo.setSelection(txt_HomeNo.getText().length());
}
}
a = txt_HomeNo.getText().toString();
} else {
a = txt_HomeNo.getText().toString();
keyDel = 0;
}
} else {
txt_HomeNo.setText(a);
}
}