Необходимо организовать проверку ввода в текстовое поле по фильтру.
+Х(ХХХ) ХХХ-ХХХХ
Идеальный сценарий таков. Изначально текст ввода выглядит так:
+_ ( _ _ _ ) _ _ _-_ _ _ _ .
Пользователь вводит только цифры и они встают на свои места. Т.е. после первой цифры будет так:
+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("(###) ###-##-##"));
}}
Комментариев нет:
Отправить комментарий