у меня есть редактировать текст, который позволяет пользователю вводить 6 символов и автоматически добавляет тире между символами 3 и 4.Android EditText ограничить символы, введенные
я хочу, чтобы запретить пользователю вручную ввести тире или любые другие специальные символы по тексту редактирования и я сделал это ниже:
андроид: цифры = «abcdefghijklmnopqrstuvwxyz1234567890»
Это работает, но когда я вручную добавить тире через textchange слушателя, это, конечно, оленья кожа добавить его.
Так я добавил тире на вышеуказанных ограничений:
андроид: цифры = «abcdefghijklmnopqrstuvwxyz1234567890-»
И, конечно, пользователь теперь может войти в тире!
Как я могу ограничить доступ пользователя к тире, позволяя его программно добавить в editText?
текущий код на слушателе изменения текста
@Override
public void onTextChanged(CharSequence text, int start, int before,
int count) {
// add dash when user enters 4th character
if (text.length() == 4 && text.length() > before) {
text = (text.subSequence(0, 3) + "-" + text.charAt(count - 1));
int pos = text.length();
editText.setText(text);
editText.setSelection(pos);
} else if (text.length() == 4 && text.length() < before) {
// delete dash when user presses back
editText.setText(text.subSequence(0, 3));
editText.setSelection(text.length() - 1);
}
}
использование 2 разного EditText и поставить TextView с тиром между 2 – njzk2
вы можете также использовать inputfilter. – njzk2