Страницы

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

вторник, 25 февраля 2020 г.

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

#android #java


Необходимо организовать проверку ввода в текстовое поле по фильтру.

+Х(ХХХ) ХХХ-ХХХХ

Идеальный сценарий таков. Изначально текст ввода выглядит так: 

+_ ( _ _ _   )    _ _ _-_ _ _ _ .

Пользователь вводит только цифры и они встают на свои места. Т.е. после первой цифры
будет так:

+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);
}}
    


Ответы

Ответ 1



Самое простое, что приходит в голову, - нарезать текст .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("(###) ###-##-##")); }}

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

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