ввод номера телефона

мне надо преобразовать ввод номера. То есть если я ввожу номер 81234567891, чтобы он преобразовывался в +7 (123) 345-78-91. Я пробовал использовать плагин от github, но он не сработал. Так же на другом форуме нашел фрагмент кода ,но он так же не сработал, может есть какой-то фрагмент кода, который может помочь?

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/etPhone"
        android:paddingTop="80dp"
        android:paddingLeft="67dp"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:hint="Телефон"
        tools:ignore="MissingConstraints">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:maxLength="11"
            />

Ответы (2 шт):

Автор решения: Mr.AntonDer

Советую использовать эту библиотеку: вот эту

Установка:

repositories {
    jcenter()
}

dependencies {
    implementation 'com.redmadrobot:input-mask-android:6.0.0'
    
    implementation 'org.jetbrains.kotlin:kotlin-stdlib:$latest_version'
}

Далее в ваш EditText ставите это и всё:

<EditText
    android:inputType="number"
    android:digits="0123456789 -".
 ... />
→ Ссылка
Автор решения: Barmaley

Задача распадается на 2 части:

  1. Собственно парсинг введенного в свободном формате номера телефона на некий стандартизированный формат (в вашем случае на +7 (123) 345-78-91 - это т.н. международный формат). В общем случае это довольно сложная задача, поскольку в разных странах совершенно разные правила/умолчания по представлению телефонных номеров. Задача решается гугловской библиотекой libphonenumber. Пример парсинга номера 81961234567 здесь, обратите внимание, что если вы попытаетесь спарсить номер 81234567891 (как в вашем случае, то либа поймет, что в России нет кода 123 и не спарсит его верно :)

  2. Создание маски ввода номера телефона в этом самом международном формате, это уже проще задача. На гитхабе есть полно библиотек решающих эту задачу, например или здесь

→ Ссылка