public class InputMask
extends java.lang.Object
implements android.text.TextWatcher
EditText maski.
Użycie:
EditText editText = (EditText) findViewById(R.id.text1);
InputMask mask = InputMask.applyTo(editText, "(00)-(000)");
Jako drugi parametr metody applyTo(EditText, String) należy podać maskę.
Znaki specjalne, które mogą zostać użyte w masce:
A - litera
a - litera (opcjonalna)
0 - cyfra
9 - cyfra (opcjonalna)
* - dowolny znak
? - dowolny znak (opcjonalny)
() - grupa zawierająca znaczący tekst który może zostać pobrany poprzez wywołanie metody #getText(true)
\L - otwarcie grupy małych liter
\U - otwarcie grupy dużych liter
\E - zamknięcie grupy
Przykłady:
- numer telefonu w formacie "777-77-77", maska: "000-00-00" - skrót państwa dużymi literami "PL", maska: "\\UAA\\E" - cena (2-3 cyfry całkowite) "50,00 zł", maska: "009,00 zł" Aby pobrać tylko wybrane znaki należy je zawrzeć w nawiasach "()" Przykład: dla maski: "(00)-(000)" i danych wejściowych "12-123" metoda:Uwaga: Niektóre klawiatury powodują złe działanie ograniczeń w przypadku włączonych sugestii, aby wyłączyć należy dodać:mask.getText(false)zwróci "12-123" metoda:mask.getText(true)zwróci "12123" Uwaga: jeśli chce się wykorzystać znak specjalny jako stały to należy go poprzedzić znakiem "\\" Przykłady: dla "17a" gdzie "a" jest stałą należy wprowadzić, maska "00\\a" dla "17\36", maska "00\\\\00" dla "(029)777-77-77", maska: "\\(000\\)000-00-00"
editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
lub
android:inputType="textNoSuggestions"
| Constructor and Description |
|---|
InputMask(android.widget.EditText editText,
java.lang.String mask) |
| Modifier and Type | Method and Description |
|---|---|
void |
afterTextChanged(android.text.Editable s) |
static InputMask |
applyTo(android.widget.EditText editText,
java.lang.String mask) |
void |
beforeTextChanged(java.lang.CharSequence s,
int start,
int count,
int after) |
void |
getText(boolean onlyValuable) |
void |
onTextChanged(java.lang.CharSequence s,
int start,
int before,
int count) |
public InputMask(android.widget.EditText editText,
java.lang.String mask)
public static InputMask applyTo(android.widget.EditText editText, java.lang.String mask)
public void beforeTextChanged(java.lang.CharSequence s,
int start,
int count,
int after)
beforeTextChanged in interface android.text.TextWatcherpublic void onTextChanged(java.lang.CharSequence s,
int start,
int before,
int count)
onTextChanged in interface android.text.TextWatcherpublic void afterTextChanged(android.text.Editable s)
afterTextChanged in interface android.text.TextWatcherpublic void getText(boolean onlyValuable)