Страницы

Поиск по вопросам

вторник, 14 мая 2019 г.

Форматированый ввод в андроид

Необходимо организовать проверку ввода в текстовое поле по фильтру. +Х(ХХХ) ХХХ-ХХХХ Идеальный сценарий таков. Изначально текст ввода выглядит так: +_ ( _ _ _ ) _ _ _-_ _ _ _ . Пользователь вводит только цифры и они встают на свои места. Т.е. после первой цифры будет так: +7 ( _ _ _ ) _ _ _-_ _ _ _ Второй: +7 (4 _ _ ) _ _ _-_ _ _ _ и т.п. Помогите с реализацией, примеры идеи... Сам нашел это: using a mask with EditText, но до ума довести не получается. package my.dfedorenko;
import android.app.Activity; import android.os.Bundle; import android.widget.EditText;
public class TestPhoneparserActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EditText phone = (EditText)findViewById(R.id.phone); phone.addTextChangedListener(new MaskedWatcher("(###) ###-##-##")); setContentView(R.layout.main); }}


Ответ

Самое простое, что приходит в голову, - нарезать текст .substring(), дальше надо смотреть, как у тебя вообще реализован ввод, через какие виджеты? Или просто в строку... import android.app.Activity; import android.os.Bundle; import android.widget.EditText;
public class TestPhoneparserActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); EditText phone = (EditText)findViewById(R.id.phone); phone.addTextChangedListener(new MaskedWatcher("(###) ###-##-##"));
}}

Комментариев нет:

Отправить комментарий