Изменение EditText
в TextWatcher
не очень хорошая идея.
Когда вы устанавливаете text
на editText
, ваш TextWatcher
будет звонить снова.
Примечание: - И оно войдет в бесконечный цикл .
Решение для этого: -
Используйте строковое значение в результате в TextWacher
и измените ExitText
вне text-watcher.
Используя TextView
, вы можете сделать это .....
Создайте TextView
в вашем макете, как показано ниже.
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
<TextView
android:id="@+id/text_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
</FrameLayout>
и используйте textWatcher
и обновите ваш TextView
текст внутри onTextChange()
метод
Другое решение : - Создайте XMl следующим образом
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<EditText
android:id="@+id/code"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:text=""
android:singleLine="true" />
<EditText
android:id="@+id/mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
</LinearLayout>
и обновите ваш editText
с помощью id
кода в вашем textWatcher
вашего editText
с помощью id
мобильного .